- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个实用类,它只有静态方法,所以它不是从 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/
当我使用仪器分配工具分析世代时,我有以下代码会泄漏。 SEL sel = NSSelectorFromString(self.selector); NSInvocation* invocation =
我收到这个警告: *** NSForwarding: warning: object 0x3560018 of class '_TtCSs23_ContiguousArrayStorage000000
我遇到了这种奇怪的崩溃,只有在设备上运行应用程序时才会发生(在模拟器中不会发生)。问题似乎突然出现,因为我没有对该特定类进行任何更改。几天前我遇到了同样的问题,我最终通过复制类、重命名它并更改引用的类
好像instanceMethodSignatureForSelector是类方法,而methodSignatureForSelector是实例方法。然而,他们的描述和用例并没有让我得出这个结论。那有什
我遇到了一个奇怪的错误: Fatal Exception: NSInvalidArgumentException *** -[_NSXPCDistantObject methodSignatureFo
为了学习,我正在尝试更改在对象上调用的方法。 这是我的代码。 #import @interface A : NSObject -(void) say: (NSString*) s; -(NSMeth
这里我有一个简单的类,每秒多次打印“test”: import Foundation class TestClass { static var count = 0 static var
我通过以下方式在我的 Swift 应用程序中使用 NSTimer: func playEvent(eventIndex : Int){ if (eventIndex < 2){
class FirstView: UIView { @IBOutlet weak var lbl1: UILabel! @IBOutlet
我尝试将对象数组存储在 NSUserDefaults 中。 我有以下代码片段: var accounts = MyAccounts() var array:Array = accou
这个问题在这里已经有了答案: Are classes objects in Objective-C? (1 个回答) 7年前关闭。 methodSignatureForSelector:方法是一个实例
我有一个实用类,它只有静态方法,所以它不是从 NSObject 继承的(不需要吧?) 编译时完全没有警告。 问题是在iPhone模拟器上运行时出现的。它崩溃并显示警告“不执行 methodSignat
我尝试将对象数组存储在 NSUserDefaults 中。 我有以下代码片段: var accounts = MyAccounts() var array:Array = accou
在 Swift 中,当按下按钮时,应用程序会因错误而崩溃 does not implement methodSignatureForSelector: -- trouble ahead Unrecog
我有一个多次实例化的类 Person。每个人都有自己的计时器。在我的 init 中为 Person 调用 startTimer()。 class Person { var timer = NSTim
我有一个 Person 类,它被实例化多次。每个人都有自己的计时器。在我的 Person 的 init 中,我调用 startTimer()。 class Person { var timer =
我正在以编程方式创建一个没有 Storyboard的 UISegmented 控件。我尝试使用模型类,而不是从数组中提取分段项目, class SegmentedControlItems{ l
我是一名优秀的程序员,十分优秀!