gpt4 book ai didi

Objective-C:我的类有静态方法 "does not implement methodSignatureForSelector: -- trouble ahead"

转载 作者:太空狗 更新时间:2023-10-30 03:50:58 25 4
gpt4 key购买 nike

我有一个实用类,它只有静态方法,所以它不是从 NSObject 继承的(不需要吧?)

编译时完全没有警告。

问题是在iPhone模拟器上运行时出现的。它崩溃并显示警告“不执行 methodSignatureForSelector:——前面有问题”好吧,我喜欢“前面有麻烦”的事情,我从来没有听到调试器告诉我“前面有麻烦”。但我不喜欢的是错误本身......当我明确调用静态方法时,为什么期望我在类中实现 methodSignatureForSelector? (+)

谢谢!丹尼尔

最佳答案

这不是 Cocoa 中的惯用模式。我强烈建议您重新考虑您的设计。这不是 Java 或 C++。一方面,甚至没有“静态方法”这样的东西——它们是类方法,类本身就是一个对象。

拥有一个不是 NSObject 子类的类也很奇怪(“不需要”不是偏离默认行为的非常合理的理由),甚至更奇怪的是只有类方法的类。该类可能应该是单例,或者被删除,并且它的方法变成函数,这取决于它是否需要保持状态。

至于你崩溃的确切原因,如果没有看到你的代码就很难说。该警告本身不应使您的程序崩溃。您确实需要一些 +initialize 的实现,即使它什么都不做,因为运行时将该消息发送给每个接收消息的类。这可能是出现错误的地方 - 您发送一条消息,运行时尝试发送 initialize,您的类没有响应,运行时尝试调用转发机制但不能。

关于Objective-C:我的类有静态方法 "does not implement methodSignatureForSelector: -- trouble ahead",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3516448/

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