Подтвердить что ты не робот

Зацикливание через NSMutableArray настраиваемых объектов наиболее эффективным способом памяти

Каков наиболее эффективный способ памяти для цикла NSMutableArray для пользовательских объектов? Мне нужно проверить значение в каждом объекте в массиве и вернуть, сколько из этого типа объекта находится в массиве.

4b9b3361

Ответ 1

for (WhateverYourClassNameIs *whateverNameYouWant in yourArrayName) {
    [whateverNameYouWant performSelector];
    more code here;
}

Он назвал быстрое перечисление и стал новой функцией Objective C 2.0, доступной на iPhone.

Ответ 2

Я бы просто использовал предикат, который был бы примерно таким:

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];
  }
}