使用 NSArray 的 makeObjectsPerformSelector 有副作用

发布于 2024-08-09 09:17:27 字数 546 浏览 3 评论 0原文

我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

赠意 2024-08-16 09:17:27

您可以修改原始的 Foo,但不能修改数组本身。正如您在文档中链接到的:

该方法不得接受任何参数,并且不得具有修改接收数组的副作用。

祝你好运!

You're allowed to modify the original Foos, just not the array itself. As you linked to in the documentation:

The method must not take any arguments, and must not have the side effect of modifying the receiving array.

Good luck!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文