Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Core data 取数后核心数据关系为零_Core Data_Nsfetchedresultscontroller - Fatal编程技术网

Core data 取数后核心数据关系为零

Core data 取数后核心数据关系为零,core-data,nsfetchedresultscontroller,Core Data,Nsfetchedresultscontroller,这是我们的后续问题。我提出了一个新的话题,因为我认为这是一个不同的问题 当我在子上下文中设置临时实体时,我会与存储中已有的实体建立关系。使用objectID传递实体accross线程,这样做不会出错。我使用断点来验证关系是否正常 现在,当我转到表以显示所有临时对象时(使用NSFetchedResultsController),关系为零。临时对象的所有其他属性都已就位,只是关系没有就位 所以我肯定错过了一些东西 以下是我尝试过的一些代码: Temp *temp = [NSEntityDescrip

这是我们的后续问题。我提出了一个新的话题,因为我认为这是一个不同的问题

当我在子上下文中设置临时实体时,我会与存储中已有的实体建立关系。使用objectID传递实体accross线程,这样做不会出错。我使用断点来验证关系是否正常

现在,当我转到表以显示所有临时对象时(使用
NSFetchedResultsController
),关系为零。临时对象的所有其他属性都已就位,只是关系没有就位

所以我肯定错过了一些东西

以下是我尝试过的一些代码:

Temp *temp = [NSEntityDescription insertNewObjectForEntityForName: @"Temp" inManagedObjectContext: myImportContext];

NSManagedObjectID *objectID = self.test.objectID;

if (objectID)
{
    NSError *error = nil;
    Test *t = (Test *)[myImportContext existingObjectWithID:objectID error: &error];

    if (error == nil)
        [temp addTestObject: t];
}
更新:我忘了添加所有这些都是在后台线程上运行的


更新2:我解决了这个问题。Temp和Test之间的关系是一对多的,所以每次我向Temp添加一个测试对象时,它都会删除前一个Temp和Test之间的关系。将关系设置为多对多解决了这个问题。

我解决了这个问题。Temp和Test之间的关系是一对多的,所以每次我向Temp添加一个测试对象时,它都会删除前一个Temp和Test之间的关系。将关系设置为多对多解决了此问题。

据我所知,在您调用对该上下文的保存,或者(取决于您的结构)对父上下文的保存之前,您的子上下文不会一直保存到数据存储。在尝试调用
NSFetchedResultsController
之前是否保存了上下文?此外,我还可以从实用书架上强烈推荐Marcus S.Zarra撰写的这篇文章——《iOS、OS X和iCloud的核心数据、第二版、数据存储和管理》(2013年1月)。没错,我的实体是临时的,因此在用户想要保存它们之前,我不会将它们保存到存储中。对于
NSFetchedResultsController
,这没有问题,因为我使用的是子上下文。该表可以很好地加载有关临时实体的所有信息,但关系为零的情况除外。我有扎拉的书和蒂姆·罗德利的书。我会继续挖掘。