2009-10-28 65 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