什么是遍历自定义对象NSMutableArray中最节省内存的方式?
我需要检查数组中每个对象的一个值,并返回该类型对象在数组中有多少个。
for (WhateverYourClassNameIs *whateverNameYouWant in yourArrayName) {
[whateverNameYouWant performSelector];
more code here;
}
这被称为快速枚举,是Objective C 2.0的一个新特性,在iPhone上可用。
我可能只会使用一个谓词,它的形式可能像这样:
NSArray * filtered = [myArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"aProperty = %@", @"someValue"]];
NSLog(@"number of items where aProperty = someValue: %d", [filtered count]);
编辑:这段代码在功能上与以下代码等效:
NSMutableArray * filtered = [NSMutableArray array];
for (MyCustomObject * object in myArray) {
if ([[object aProperty] isEqual:@"someValue"]) {
[filtered addObject:object];
}
}
filteredArrayUsingPredicate
和 NSPredicate predicateWithFormat
的文档。 - mga@"description CONTAINS NSObject"
之类的东西。我相信它只是执行一个具有LHS名称的选择器并比较返回值。 - Dave DeLong