我有一个使用CoreData的项目。移植它使用Realm。包括重写一堆测试和创建样本数据。
在我得到EXC_BAD_ACCESS异常的任何地方我很快就会运行它。
当然我在想,也许我应该:
那些东西还在崩溃吗?奇怪的是,似乎查询返回了一些结果,然后它崩溃了。
我在这一点上的主要问题可能是因为这是用C ++编写的,这是一个症状或包装器:它包含某些东西的语法优势很快就会因为很少甚至没有有用的错误报告而被撤消。 / p>
我现在甚至无法进行测试,因为模拟器在启动时崩溃。
问题很简单:除了删除应用程序和领域文件之外还能做什么?我在导致崩溃的代码中唯一做的就是:
答案 0 :(得分:1)
来自Realm的JP。
要解决EXC_BAD_ACCESS
错误的一些通常有用的事情(即使没有Realm)也可以查找堆栈跟踪中被解除引用的内容的提示,或者启用Address Sanitizer或zombies运行。有一些SO帖子可以浏览一些调试提示here和raywenderlich.com here。
至于您在特定情况下可能发生的情况,很难说,因为您没有完全共享任何代码或步骤供我们重现。我们建议您提交GitHub issue,以便我们帮您解决问题。我们总是尽量做出回应。
最后,Realm的核心是用C ++编写并用Objective-C包装的事实对于在解除引用空指针或访问无效的内存地址时打印有用的错误消息的能力没有任何影响。 Realm的C ++核心中发生的所有错误都报告为断言,并将消息记录到STDOUT,或者作为包含描述性消息的Objective-C异常公开。
答案 1 :(得分:0)
原来我在其中一个属性上有一个不受支持的类型。当然,这在核心数据中永远不会发生,因为它会生成托管对象类。真是浪费时间。这具有很大的潜力,但它完全可以解析模式并输出错误消息以获取不可接受的信息。