我有一个字典阵列,电话号码是其中的一个关键,
{
Email = "ryuiioo@uioo.njk";
Firstname = Sourish;
Lastname = Sam;
Middlename = S;
phonenumbers = (
{
Home = 3452345345;
Main = 4985739804;
Mobile = 3567567741;
Other = 5769875698;
Test = 2290834709;
Testing = 9336664648;
Work = 4523523453;
iPhone = 3453245234;
}
);
recordID = 66;
}
我使用这个字符串"stringToSearch".搜索数组这就是我在搜索时试图获取名字的方式。
NSMutableArray *allPredicatesArray = [NSMutableArray new];
NSPredicate *firstNamePredicate = [NSPredicate predicateWithFormat:@"SELF.Firstname beginswith[c] %@",stringToSearch];
NSArray *firstNameFilteredArray = [self.recordsMutableArray filteredArrayUsingPredicate:firstNamePredicate];
[allPredicatesArray addObjectsFromArray:firstNameFilteredArray];
现在,我可以使用谓词--使用NSpredicates搜索“移动”号码
发布于 2014-04-21 15:09:44
"phonenumbers“是一个数组,因此您必须在谓词中使用"ANY”:
NSString *numberToSearch = @"3567567741";
NSPredicate *mobileNumberPredicate = [NSPredicate predicateWithFormat:@"ANY phonenumbers.Mobile BEGINSWITH %@", numberToSearch];
假设数字存储为字符串。
发布于 2014-04-21 16:16:27
如果电话号码实际上不是一个字典数组,我认为您需要的是谓词字符串SELF.phonenumbers.Mobile beginswith[c] %@"
如果它实际上是一组字典,那么下面的内容就可以了:
@"SUBQUERY(phonenumbers, $x, $x.Mobile BEGINSWITH %@).@count > 0"
发布于 2014-04-21 14:12:04
只需尝试使用以下代码:
NSPredicate *predicateProduct = [NSPredicate predicateWithFormat:@"Mobile BEGINSWITH[cd] %@", stringToSearch];
NSArray *filteredArray = [self.listOfProducts filteredArrayUsingPredicate:predicateProduct];
NSLog(@"%@", filteredArray);
https://stackoverflow.com/questions/23199029
复制相似问题