我有一个NSArray的对象具有诸如firstName,lastName,clientID等属性,我想根据搜索关键字对数组执行搜索。必须根据名字和姓氏属性检查此关键字,并返回原始数组的子集,该数组仅包含那些名字中包含搜索词的名字的对象。有没有任何有效/快速的方法来做到这一点?搜索数组中的对象的属性
2
A
回答
6
我觉得你找-indexesOfObjectsPassingTest:
NSIndexSet *indexSet = [array indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
MyObject *myObject = (MyObject *)obj;
return [myObject.firstName isEqualToString:@"Bob"];
}];
这将返回索引集与“鲍勃”的名字在阵列中的所有对象。
11
作为第二个想法,我认为-filteredArrayUsingPredicate:
可能会对你更好。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K = %@", @"firstName", @"Bob"];
NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];
这将从数组中返回具有第一个名字“Bob”的对象的子数组。
0
另一种方法返回只包含匹配对象的新数组:
-(NSArray *)matchingClientsFromArray:(NSArray *)objects withFirstName:(NSString *)firstName andLastName:(NSString *)lastName{
NSMutableArray *objectArray = [NSMutableArray new];
for (Client *client in objectArray){
if ([client.firstName isEqualToString:firstName] &&
[client.lastName isEqualToString:lastName]) {
[objectArray addObject:client];
}
}
return [objectArray copy];
}
相关问题
- 1. 搜索对象的对象属性下的数组,在JavaScript
- 2. 通过对象数组搜索,未定义对象的属性?
- 3. 在对象数组中搜索匹配的属性和值对
- 4. 线性搜索类对象的数组
- 5. 如何搜索数组内的对象属性?
- 6. 在类对象数组中搜索属性 - Java
- 7. 搜索R对象的属性
- 8. 从对象数组中检索属性的数组
- 9. 如何通过php中的对象数组中的属性进行搜索?
- 10. 快速搜索数组中的对象
- 11. 搜索对象数组中的元素
- 12. Matlab:按属性对象数组索引
- 13. AS3 - 是否有可能通过对象属性搜索数组?
- 14. Angular.js在给定属性中搜索数组中的匹配对象
- 15. 在对象数组中,找到属性匹配搜索对象的索引的最快方法
- 16. 搜索对象数组
- 17. 搜索一个对象数组返回对象匹配属性值
- 18. C#arraylist搜索对象属性问题
- 19. 在对象递归搜索属性
- 20. 键入脚本以搜索数组对象中的多个属性
- 21. .NET:从数组中的对象的动态属性检索值
- 22. 搜索使用对象属性的对象列表
- 23. 访问数组中对象的属性
- 24. 获取数组中对象的属性
- 25. 访问对象数组中的属性
- 26. 比较数组中的对象属性
- 27. 获取数组中对象的属性
- 28. 读取数组中对象的属性
- 29. 搜索对象从对象数组的数组 - 使用Javascript
- 30. 对PowerShell中属性值的XPath搜索
我不是试图做一个全名的比赛。如果我的搜索字词是前例。 “fr”的结果可能像Franz Smith,Frank Jones,John Frappe –