使用 NSArray 的 makeObjectsPerformSelector 有副作用
我在 Objective-C 程序中有一个 Foos 的 NSArray。我想调用每个 Foo 的 doIt 函数,但是,NSArray 的 makeObjectsPerformSelector 函数不允许修改原始 Foos,根据 文档。当调用 doIt 时,doIt 选择器会更改每个 Foo 的 m 数据成员。如何在 NSArray 中的每个 Foo 上有效地执行此函数?
@interface Foo : NSObject {
NSString *m;
}
@property (nonatomic, retain) NSString *m;
-(void)doIt;
@end
I have an NSArray of Foos in an Objective-C program. I would like to call the doIt function of each Foo, however, the makeObjectsPerformSelector function of NSArray does not allow the original Foos to be modified, per the docs. The doIt selector changes the m data member for each Foo when doIt is called. How do I go about efficiently performing this function on each Foo in the NSArray?
@interface Foo : NSObject {
NSString *m;
}
@property (nonatomic, retain) NSString *m;
-(void)doIt;
@end
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以修改原始的 Foo,但不能修改数组本身。正如您在文档中链接到的:
祝你好运!
You're allowed to modify the original
Foo
s, just not the array itself. As you linked to in the documentation:Good luck!