由“<null selector =”“>”</null>引起的NSInvalidArgumentException

时间:2010-06-04 09:49:31

标签: iphone objective-c

我们在应用程序商店中有一个iPhone应用程序,我们在更新后看到很多崩溃。在将其提交到应用程序商店之前测试它时没有发生这些崩溃,我们无法在我们自己的设备上重现崩溃。

下面是我们收到的崩溃消息:

  

'NSInvalidArgumentException',原因:'*** - [MessageHeader]:无法识别的选择器发送到实例0x4551450'

导致此消息的来源是:

[self fireDelegateIfRegisteredMessageId:header.messageID andMessage:message];

引用MessageHeader的唯一地方是“header.messageID”,但我想知道这个选择器将如何变为零。同样的陈述也用在这一行之上的各个地方,并在那里工作。

什么可能导致这个问题? Espacility什么可能导致选择器变为nil,除了以下代码?

SEL selectorTest = nil;
[self performSelector:selectorTest]

1 个答案:

答案 0 :(得分:1)

我有类似的问题。我的问题是在导致异常的行之前不久就发生了缓冲区溢出。这是一些快速和污垢的功能添加,忘了彻底检查。

我曾经在一个8字节的大缓冲区中写入16个字节。该例外只能在设备上进行,而不能在模拟器或调试版本中进行。这真是一个令人讨厌的错误。