2009-11-03 67 views

回答

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

它被稱爲快速枚舉,並且是目標C 2.0的新功能,可在iPhone上使用。

+1

這是一個更好的內存管理方式做事情,但我確實喜歡Dave DeLong關於Predicates的帖子。 – 2009-11-04 02:46:04

17

我可能只用一個謂語,這將是這樣的:

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

請注意對這段代碼做一點解釋?我是iPhone新手和Obj-C新手。你的代碼看起來很小很棒,但我討厭使用我不明白的東西。 – 2009-11-03 21:19:24

+1

閱讀文檔'filteredArrayUsingPredicate'和'NSPredicate predicateWithFormat' – mga 2009-11-03 21:20:45

+1

@Pselus - 編輯答案 – 2009-11-03 21:24:39

相關問題