在iPhone和iPad上工作了一个月后,我的Xcode 9应用程序一直开始崩溃,导致我出现以下致命问题:当我构建&在iPhone上运行它(模拟器或设备)Xcode完成加载应用程序然后崩溃太快,我无法从调试器复制/粘贴错误。当我在iPad上运行时,它工作得很好,让我相信这是与分割主/细节视图相关的结果。
如果我使用 一个例外断点或一个"所有C ++异常"它将在AppDelegate类停止,如果我点击播放就会崩溃。如果我只使用 一个"所有Objective-C例外"它会像以前一样崩溃。
在调试视图层次结构中,我也会收到以下错误:
Error: Unable to capture view hierarchy.
Details: Log Title: Data source expression execution failure.
Log Details: error evaluating expression “(id)
[[(Class)objc_getClass("DBGTargetHub") sharedHub]
performRequestWithRequestInBase64:@"...
Log Method: -[DBGDataSourceConnectionLibViewDebugger
_executeLLDBExpression:forRequest:onPotentialThread:iteration:]
_block_invoke_2
Method: -[DBGViewDebugger updateDebugHierarchy]_block_invoke_2
我测试了其他应用,这个问题对我正在开发的应用来说是独一无二的。有关如何进行的任何想法或调试技巧?如果我甚至找不到这个的根本原因,我可能只需要再次重做整个项目!感谢任何帮助。
答案 0 :(得分:0)
快速解决方案:重置模拟器设备
由于一些严肃的挖掘,我设法解决了上述问题。首先,为了解决瞬时崩溃问题,我在app委托中的每一行设置了一个断点。这使我能够将错误缩小到内存处理问题。从那里开始,我开始在每个可用设备上运行代码,并意识到崩溃只发生在我之前在开发中使用过的设备上。重置这些设备解决了这个问题。
这里的核心问题是,当您清理/重建xcode程序时,它会更新设备上的应用程序代码,但不一定是数据模型信息。因此,当我通过包含新数据和重命名旧数据来更改数据模型时,它未正确更新。