无法在设备的 Instruments 中找到 Zombie。
我能够在 Instruments for Simulator 中找到 Zombie 但无法找到设备,由于添加了第三方 api,我的应用程序只能在设备上运行。
我如何追踪导致崩溃的原因"message sent to deallocated instance "
我只想找到导致此崩溃的确切实例(或代码行)。
无法在设备的 Instruments 中找到 Zombie。
我能够在 Instruments for Simulator 中找到 Zombie 但无法找到设备,由于添加了第三方 api,我的应用程序只能在设备上运行。
我如何追踪导致崩溃的原因"message sent to deallocated instance "
我只想找到导致此崩溃的确切实例(或代码行)。
僵尸崩溃的一些原因:
1.控制实例被清除后控制委托响应较晚。
2. 线程内部使用的实例在清除后尝试修改实例。
所以妥善处理委托
在删除视图控制器时将控制委托设为 nil,如下所示:
- (void)viewDidDisappear:(BOOL)animated
{
[self.mapView setDelegate:nil];
[_webView setDelegate:nil];
}
虽然,当 XCode 返回“Message sent to deallocated instance”错误消息时,它通常也会告诉 Object 发送该错误的对象。
无论如何,您可以使用以下内容找到导致错误的确切行:
对XCode中的所有异常使用异常断点。
添加异常断点:
1. 转到 BreakPoint Navigator
2. 在底部有一个加号。点击它。
3. 您将获得两个选项:Add Exception Breakpoint... 和 Add Symbolic BreakPoint...
选择 Exception Breakpoint。