2009-11-03 12 views

Odpowiedz

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

To się nazywa szybkie wyliczenie i była to nowa funkcja w Objective C 2.0, który jest dostępny na iPhone.

+1

Jest to lepszy sposób zarządzania pamięcią do robić rzeczy, ale podoba mi się post Dave'a DeLonga o Predykatach. –

17

I pewnie po prostu użyć predykatu, co byłoby coś takiego:

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

Edit: Ten kod jest funkcjonalnie równoważne:

NSMutableArray * filtered = [NSMutableArray array]; 
for (MyCustomObject * object in myArray) { 
    if ([[object aProperty] isEqual:@"someValue"]) { 
    [filtered addObject:object]; 
    } 
} 
+0

Chcesz trochę wyjaśnić ten fragment kodu? Jestem początkującym użytkownikiem iPhone'a i nowicjuszem z Obj-C. Twój kod wygląda na mały i niesamowity, ale nienawidzę używać rzeczy, których nie rozumiem. –

+1

odczytać Dokumenty dla 'filteredArrayUsingPredicate' oraz' NSPredicate predicateWithFormat' – mga

+1

@Plus - edytowana odpowiedź –

Powiązane problemy