2014-02-05 23 views
0

我想知道是否有更好的方法來設置NSMutableArray屬性值中的每個對象?Objective C - NSMutableArrays - 對於每個

​​

我對xCode很新,我有一個C#背景。我知道C#& Linq可以提供一個非循環的解決方案..我想知道這是否也可以與Objective C

我搜索這裏和那裏...所有我能找到的是一種方法來獲取對象陣列,其中屬性X等於someValue中..

+0

@約翰,我知道我不能......該NSMutableArray裏充滿了NSObject的(球員)。 ... – Baral

回答

6

隨着鍵 - 值編碼:

[self.players setValue:@NO forKey:@"isEliminated]; 

設置陣列的每個元件上的屬性。

請注意,即使屬性是(標量)BOOL,您必須在此處使用Objective-C 號碼對象@NO。當設置 屬性時,它會自動「翻譯」到NO

+0

謝謝,這正是我正在尋找的... – Baral

0

那麼,你可以創建一個loblockss解決方案和NSArray s - (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block消息。例如:

[self.players enumerateObjectsUsingBlock:^(Player *p, NSUInteger idx, BOOL *stop) { 
    p.isEliminated = NO; 
}]; 

但是,這幾乎不可讀。在我看來,對這類工作使用循環是很好的。

0

您可以使用makeObjectsPerformSelector:方法上的NSMutableArray設置所有對象的變化值的NSMutableArray:

[self.players makeObjectsPerformSelector:@selector(setIsEliminated:) withObject:@NO];