【问题标题】:How to filter objects in NSArray by object's property如何通过对象的属性过滤 NSArray 中的对象
【发布时间】:2011-11-11 16:30:28
【问题描述】:
我有一个名为 MyObject 的对象,有 2 个属性 MyObject.name、MyObject.ID
我还有一个 NSMutableArray 对象 MyObjects 来存储 MyObject 对象实例。
现在,我想过滤掉 MyObjects 中 MyObject.name 包含 char @"a" 的所有实例,我该怎么做?我尝试了 NSDictionary 和 NSPredicate 方法,但都失败了。
你有什么想法吗?非常感谢~
【问题讨论】:
标签:
objective-c
xcode
nsmutablearray
nsdictionary
【解决方案1】:
有很多方法可以做到这一点,但这是我脑海中的一个想法。您可以遍历 MyObjects NSMutable 数组中的所有对象,然后编写逻辑在每个 MyObject.name 中搜索 @"a",然后将不包含 @"a" 的对象存储在新数组中。
// note using ARC
NSMutableArray *myFilteredObjects = [[NSMutableArray alloc] init];
for(MyObject *myObject in MyObjects)
{
NSRange *range = [myObject.name rangeOfString:@"a"];
if(range.location == NSNotFound)
{
// add object to new array if it doesn't contain @"a"
[myFilteredObjects addObject: myObject];
}
}
// do what you want with filtered objects array