gpt4 book ai didi

iphone - NSMutableArray 和 NSPredicate 过滤

转载 作者:可可西里 更新时间:2023-11-01 03:26:31 25 4
gpt4 key购买 nike

我正在尝试使用一个对象中的两个实体来过滤我的数组,就像我有一个 Person 对象,其中我有姓名、地​​址、号码、电子邮件等。我正在尝试仅使用名称和数字。如何使用 NSPredicate 实现这一目标?

最佳答案

创建谓词(以下假定您的 Person 类具有 namenumber 字符串属性):

NSString *nameFilter = @"Steve*";
NSString *numberFilter = @"555-*";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(name like %@) or (number like %@)", nameFilter, numberFilter];

然后,过滤数组(假设您有一个 Person 对象的 NSArray):

NSArray *personArray = /* obtain from somewhere */;
NSArray *filtered = [personArray filteredArrayUsingPredicate:pred];

结果将是一个数组,其中包含 Person 对象,其 name 可以是“Steve”、“Steven”等,其编号以 555- 开头

编辑

你说的没有道理。您不能从类中删除属性(或者更确切地说,您不应该)。如果您只想要一个仅包含姓名和数字的数组,则必须遍历 Person 对象的数组:

NSMutableArray *result = [NSMutableArray array];

for (Person *p in personArray)
[result addObject:[NSString stringWithFormat:"%@ : %@", [p name], [p number]]];

关于iphone - NSMutableArray 和 NSPredicate 过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8436496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com