我们在应用程序商店中有一个iPhone应用程序,我们在更新后看到很多崩溃。在将其提交到应用程序商店之前测试它时没有发生这些崩溃,我们无法在我们自己的设备上重现崩溃。
下面是我们收到的崩溃消息:
'NSInvalidArgumentException',原因:'*** - [MessageHeader]:无法识别的选择器发送到实例0x4551450'
导致此消息的来源是:
[self fireDelegateIfRegisteredMessageId:header.messageID andMessage:message];
引用MessageHeader的唯一地方是“header.messageID”,但我想知道这个选择器将如何变为零。同样的陈述也用在这一行之上的各个地方,并在那里工作。
什么可能导致这个问题? Espacility什么可能导致选择器变为nil,除了以下代码?
SEL selectorTest = nil;
[self performSelector:selectorTest]
答案 0 :(得分:1)
我有类似的问题。我的问题是在导致异常的行之前不久就发生了缓冲区溢出。这是一些快速和污垢的功能添加,忘了彻底检查。
我曾经在一个8字节的大缓冲区中写入16个字节。该例外只能在设备上进行,而不能在模拟器或调试版本中进行。这真是一个令人讨厌的错误。