【发布时间】:2010-12-12 19:30:39
【问题描述】:
循环遍历自定义对象的 NSMutableArray 的最节省内存的方法是什么? 我需要检查数组中每个对象的值,并返回数组中有多少该类型的对象。
【问题讨论】:
标签: iphone objective-c memory-management
循环遍历自定义对象的 NSMutableArray 的最节省内存的方法是什么? 我需要检查数组中每个对象的值,并返回数组中有多少该类型的对象。
【问题讨论】:
标签: iphone objective-c memory-management
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 的文档