在iOS 7中,当屏幕方向改变时出现无关错误

6

在我的iPad应用程序中,我有一个带有多个部分和行的表格。当我将方向从横向更改为纵向或从纵向更改为横向时,我会收到以下错误之一:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[WebScriptObjectPrivate countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x124a15a0'

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[DOMHTMLHeadElement rotatingClient]: unrecognized selector sent to instance 0x8c60a20'

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x8f7c380'

我没有明确使用抛出异常的任何类。

编辑: 使用Instruments,我发现这是崩溃发生的地方。我以前没有用过它,所以不知道该怎么做。

#   Event Type  ∆ RefCt RefCt   Timestamp       Responsible Library  Responsible Caller
2   Zombie              -1      00:38.935.631   UIKit                -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:isRotating:]
1个回答

3

当您收到未识别的选择器消息并且这些消息被发送给您没有直接使用的类的对象时,答案通常是您的目标对象已经意外释放,并且内存被重新使用于出现在错误消息中的对象。

最好的方法是在您的方案中打开僵尸对象,并查看哪些已释放的对象正在接收消息。或者,您可以尝试通过找出应该接收消息的对象以及发生了什么来跟踪它。(显然,当可能时,第一种方式更容易。)


+1 很好的回答。在XCode中添加异常断点将进一步缩小问题区域的范围。干杯 - viral

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接