gpt4 book ai didi

objective-c - 将类方法作为选择器问题传递

转载 作者:搜寻专家 更新时间:2023-10-30 20:07:53 25 4
gpt4 key购买 nike

我想从类方法构建一个选择器。

我是这样做的:

NavigationTreeActionHandler* handler=[NavigationTreeActionHandler self];
NavigationTreeNode* bombsNode=new NavigationTreeNode("Bombs","bigbomb.tif"
,handler,@selector(BigBombButtonPressed:));

我需要将目标和选择器传递给 NavigationTreeNode 到目标方法。我尝试使用类对象的 self 属性获取目标(不知道 htis 是否是正确的方法)。然后我得到了我想在类上调用的类方法的选择器。

一切都编译正常,但是当我使用时它失败了:

[[处理程序类] instanceMethodSignatureForSelector:selector];

我得到了一个 nil 并且真的不知道为什么......有人可以帮忙吗?

最佳答案

一些建议:

  • [NavigationTreeActionHandler self] 可以很好地获取类对象,但我会将 handler 声明为类型 id 而不是NavigationTreeActionHandler*,因为它不是对该类型的实例的引用

  • [handler class] 是多余的; handler 已经是类对象。

  • instanceMethodSignatureForSelector: 仅在 handler 未实现 selector 时才返回 nil。验证您的拼写等,并尝试输入 NSLog 以验证您收到的内容:

    NSLog("handler = %@ sel = %@", handler, NSStringFromSelector(selector));

但我不清楚您首先尝试使用 instanceMethodSignatureForSelector: 做什么。如果您只是想调用类方法,[handler performSelector:selector]; 不会做您想做的事吗?

关于objective-c - 将类方法作为选择器问题传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2896831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com