我有3个表userID,profile有一个关系和searchId,profile有一个关系。我为这两种关系设置了删除规则为Nullify。我有两个视图控制器,我使用Restkit从服务器映射json数据。
在View Controller 1中: 在此视图中,使用Restkit从服务器获取数据并在数据库中映射数据。 (userID - >个人资料)
在View Contrller 2中: 数据从服务器检索并映射到DB(searchID - > profile)。
View Controller 1中有一个刷新按钮,它将从服务器获取数据并映射(更新)数据库。
问题:View Controller 1从服务器加载数据后,我试图在View Controller 2中搜索从服务器加载数据的数据。我在ViewController 1 UI中加载这些数据(因为View Controller 1结果和View Controller 2结果的格式相似)此处没有问题。
但是当我再次单击刷新按钮时,App崩溃并出现以下错误。我无法弄清楚问题。
*** Terminating app due to uncaught exception 'NSObjectInaccessibleException', reason: 'CoreData could not fulfill a fault for '0x8b4b950 <x-coredata://EE00CF63-BECD-40FC-B531-1424930D75D6/USERID/p42>''
*** First throw call stack:
(0x2b78022 0x2d28cd6 0x230b506 0x230b0a7 0x230ac86 0x2316db9 0x2316c26 0x231a38e 0x234a5f6 0x2338df7 0x233791e 0x233765d 0x2336f0a 0x1d59d91 0x1d59895 0x1d3f33e 0x231af3f 0x231a449 0x234a5f6 0x2338df7 0x23379ec 0x233765d 0x2336f0a 0x1d59d91 0x1d59895 0x1d3f33e 0x231af3f 0x231a449 0x234a5f6 0x2338df7 0x2338d64 0x1d70d50 0x273ebd 0x274727 0x1d7463e 0x1d6d1e7 0x1d6ceea 0x29c725 0x2a78b0 0x29e0f7 0x29e773 0x29ea5a 0x28ed330 0x28eef0c 0x28eecb4 0x28ee402 0x97dd7b24 0x97dd96fe)
terminate called throwing an exception
非常感谢任何帮助
答案 0 :(得分:1)
在点击刷新按钮之前是否已保存所有托管对象上下文? “CoreData无法完成故障”错误意味着Core Data正在尝试查找具有特定ID的行,但无法找到该行。当您跨线程传递托管对象(您应该永远不会这样做,应该传递其对象ID)或跨线程传递其ID而不保存创建对象的上下文时,就会发生这种情况。