App首次运行模拟器,但是一旦将新数据保存到Core Data,应用程序将无法再次启动 - 在第一个视图加载未捕获的异常之前崩溃' NSInternalInconsistencyException',原因:&# 39;声明仍然有效#39;控制台中有75行预碰撞动作,但没有什么突出的(对我不熟练的眼睛)。
如果删除,可以重复启动应用程序,直到新数据保存到Core Data。保存新数据后,仅停止运行应用程序或退出模拟器无效,它在启动期间仍会崩溃。
Stackoverflow和apple doc.s一致表明它与线程有关,但我的代码有点简单 - 一切都在主线程上。我喜欢在迅速或迅速的过程中找到要尝试的东西来确定原因/解决方案。
我在AppDelegate类中使用默认的xcode 7核心数据堆栈。样本数据最初以一种方法加载到Core Data中,然后从核心数据成功加载。保存新记录后,(不重新启动)从Core Data成功加载新添加的数据。问题只发生在重新启动时。
在代码中,当实例化新的记录视图控制器时,我在prepareForSegue方法中使用单独的实体实例化两个托管对象:
if (segue.identifier == "UnwindSegue")
{
updateRecord() // managed object properties updated
do
{
try managedContext.save() // commit changes / save context
}
catch
{
print("There is some error.") // if error
}
}
在新记录视图控制器中,定义了托管对象属性值,并在展开时保存托管上下文。
start end
1 5
当应用程序返回主视图时,新记录将从Core Data中获取并显示在表格上。
但是当我重新启动应用程序时 - 悲伤。
答案 0 :(得分:0)