kfo*_*rim 7 iphone cocoa objective-c ipad ios
我试图用一个对象中的两个实体来过滤我的数组,就像我有一个Person对象,其中我有名字,地址,数字,电子邮件等.我试图用名称和数字过滤我的数组对象列表.如何使用NSPredicate实现这一目标?
dre*_*lax 13
创建谓词(以下假定您的Person类有name和number字符串属性):
NSString *nameFilter = @"Steve*";
NSString *numberFilter = @"555-*";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(name like %@) or (number like %@)", nameFilter, numberFilter];
Run Code Online (Sandbox Code Playgroud)
然后,过滤阵列(这是假设你有一个NSArray的Person对象):
NSArray *personArray = /* obtain from somewhere */;
NSArray *filtered = [personArray filteredArrayUsingPredicate:pred];
Run Code Online (Sandbox Code Playgroud)
结果将是一个包含可能是"史蒂夫","史蒂文"等Person对象的数组,name其编号以555-.
你所说的并没有多大意义.您无法从类中删除属性(或者更确切地说,您不应该删除).如果您只想要一个只包含名称和数字的数组,则必须遍历Person对象数组:
NSMutableArray *result = [NSMutableArray array];
for (Person *p in personArray)
[result addObject:[NSString stringWithFormat:"%@ : %@", [p name], [p number]]];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15598 次 |
| 最近记录: |