2009-10-28 61 views
0

我在Objective-C程序中有一個NSArray的Foos。我想調用每個Foo的doIt函數,但是,NSArray的makeObjectsPerformSelector函數不允許根據the docs修改原始Foos。當doIt被調用時,doIt選擇器更改每個Foo的m數據成員。如何在NSArray中的每個Foo上有效地執行這個函數?使用NSArray的makeObjectsPerformSelector有副作用

@interface Foo : NSObject { 
    NSString *m; 
} 

@property (nonatomic, retain) NSString *m; 

-(void)doIt; 

@end 

回答

6

您被允許修改原始Foo s,而不是陣列本身。正如你在文檔中鏈接到的那樣:

該方法不能帶任何參數,也不能有修改接收數組的副作用。

祝你好運!

+0

謝謝。在編寫問題後,我發現http://stackoverflow.com/questions/563051/nsarray-makeobjectsperformselector,但由於某種原因,它沒有出現在「類似問題」字段中。 – 2009-10-28 16:39:24