在Objective-C中,如果属性是字符串类型,有没有一种方法可以通过包含的对象的属性来搜索对象数组?
例如,我有一个Person对象的NSArray。 Person有两个属性,NSString *firstName和NSString *lastName。
什么是搜索数组以查找所有在firstName或lastName属性中匹配“Ken”的人的最佳方法?
在Objective-C中,如果属性是字符串类型,有没有一种方法可以通过包含的对象的属性来搜索对象数组?
例如,我有一个Person对象的NSArray。 Person有两个属性,NSString *firstName和NSString *lastName。
什么是搜索数组以查找所有在firstName或lastName属性中匹配“Ken”的人的最佳方法?
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"firstName==%@ OR lastName==%@",@"Ken",@"Ken"];
NSArray *results = [allPersons filteredArrayUsingPredicate:predicate];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.property_name contains[c] %@",stringToSearch];
filteredPendingList = [NSMutableArray arrayWithArray:[mainArr filteredArrayUsingPredicate:predicate]];
NSSortDescriptor *sortDescriptor;
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"property_name"
ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray;
sortedArray = [filteredPendingList sortedArrayUsingDescriptors:sortDescriptors];
因此,您将获得已筛选结果的排序数组。 property_name 是您想要执行搜索操作的对象内变量的名称。希望这能帮到您。
你需要进行线性搜索,逐个比较数组中的每个条目,以查看它是否与你要查找的内容匹配。
for loop
遍历数组内容并检查您想要的内容同样好。 - progrmr