以最节省内存的方式循环遍历自定义对象的NSMutableArray

Jam*_*ght 14 iphone memory-management objective-c

循环遍历自定义对象的NSMutableArray的内存最有效的方法是什么?我需要检查数组中每个对象的值,并返回该类型对象在数组中的数量.

ref*_*tis 35

for (WhateverYourClassNameIs *whateverNameYouWant in yourArrayName) {
    [whateverNameYouWant performSelector];
    more code here;
}
Run Code Online (Sandbox Code Playgroud)

它被称为快速枚举,是Objective C 2.0的新功能,可在iPhone上使用.


Dav*_*ong 17

我可能只是使用谓词,这将是这样的:

NSArray * filtered = [myArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"aProperty = %@", @"someValue"]];
NSLog(@"number of items where aProperty = someValue: %d", [filtered count]);
Run Code Online (Sandbox Code Playgroud)

编辑:此代码在功能上等同于:

NSMutableArray * filtered = [NSMutableArray array];
for (MyCustomObject * object in myArray) {
  if ([[object aProperty] isEqual:@"someValue"]) {
    [filtered addObject:object];
  }
}
Run Code Online (Sandbox Code Playgroud)