Dan*_*iel 5 methods static objective-c
我有一个只有静态方法的实用程序类,所以它不是从NSObject继承的(不需要对吗?)
编译时根本没有警告.
在iPhone模拟器上运行时出现问题.它崩溃时发出警告"没有实现methodSignatureForSelector: - 提前出现故障"嗯,我喜欢那个"麻烦未来"的事情,我从来没有听过一个调试器告诉我有"前方有问题".但是我不喜欢的是错误本身......当我明确地调用静态方法时,为什么期望我在类中实现methodSignatureForSelector?(+)
谢谢!丹尼尔
Chu*_*uck 10
这不是Cocoa中的惯用模式.我强烈建议你重新考虑你的设计.这不是Java或C++.首先,甚至没有"静态方法"这样的东西 - 它们是类方法,类本身就是一个对象.
有一个不是NSObject子类的类("不需要"不是偏离默认行为的非常合理的理由)也很奇怪,甚至更奇怪的是只有类方法的类.该类可能应该是单例或者被淘汰,并且它的方法变成函数,这取决于它是否需要保持状态.
至于你崩溃的确切原因,没有看到你的代码就很难说.这个警告本身不应该破坏你的程序.您确实需要进行一些实现+initialize,即使它什么也不做,因为运行时将该消息发送到接收消息的每个类.这可能是错误发生的地方 - 你发送一条消息,运行时试图发送initialize,你的类没有响应,运行时试图调用转发机制而不能.