带有一些参数的performSelector

发布于 2025-01-01 08:36:15 字数 402 浏览 1 评论 0原文

我想执行有几个参数的方法。有什么简单的方法可以一次性通过其中几个吗?就像

[self performSelector:@selector(methodName) withObject:firstParameter withObject:secondParameter afterDelay:0.1];

我在这里找到了一种方法 SEL PerformSelector 和参数,但似乎有点复杂,我想应该有一些更简单的方法来完成它。但对于我来说,可能只是这样,因为我是 Objective C 的新手:)

我会非常感谢你的帮助!

I want to perform the method which has a few arguments. Is there any easy way to pass a few of them at once? Something like

[self performSelector:@selector(methodName) withObject:firstParameter withObject:secondParameter afterDelay:0.1];

I've found a way here SEL performSelector and arguments, but it seems a little bit complicated and I guess there should be some easier way to make it done. But probably it just looks like that to me because of being newbie in Objective C :)

I'll appreciate your help a lot!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(2

倾听心声的旋律 2025-01-08 08:36:15
  1. 将您的参数包装到 NSDictionary 中并将该字典发送为
    范围。
  2. 创建自定义类并将所有参数包含在此类中
    特性。将这个新创建的对象作为参数发送。
  1. Wrap your parameters into NSDictionary and send this dictionary as
    parameter.
  2. Make custom class and include all your parameters in this class as
    properties. Send this newly created object as parameter.
滥情稳全场 2025-01-08 08:36:15

或者另一种解决方案:

#import <objc/runtime.h>
...
objc_msgSend(self, sel_getUid("methodwithFirstParam:secondParam:thirdParam:"), @"foo", "bar", 42 );

performSelector: 不同,方法 objc_msgSend 可以采用许多不同类型的参数,例如 NSObject (和子类)或 <代码>BOOL、intchar*等。

Or another solution:

#import <objc/runtime.h>
...
objc_msgSend(self, sel_getUid("methodwithFirstParam:secondParam:thirdParam:"), @"foo", "bar", 42 );

Unlike performSelector:, method objc_msgSend can take a lot of parameters with different types, like NSObject (and child classes) or BOOL, int, char* etc.

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