核心数据实体属性消失

时间:2013-05-08 19:17:13

标签: ios objective-c core-data

我在其中一个课程中创​​建了一个带有魔法记录的Core Data Entity。我保存上下文并将Entity分配给自定义Cell对象的属性。

然后我将单元格对象传递给另一个显示它的类。在某个随机点,Entity的属性变为零。

我仍然可以在数据库中找到Entity并且仍然有效。在任何时候,单元格对象都不会成为de-refereance(它存储在类属性数组中)。

所以,在我的计划的某一点上,这里是Entity

2013-05-08 13:58:51.425 DEBUG | -[DatasetSubBar doesCellArray:containCellWithDataset:] | cell.dataset: <SavedAnalysis: 0x22b0a4d0> (entity: SavedAnalysis; id: 0x22bba720 <x-coredata://42CA4347-1DF1-4C6B-AB44-03EFE3D86F3A/SavedAnalysis/p110> ; data: {
    createDate = "2013-05-08 18:58:00 +0000";
    name = "Unsaved Analysis";
})

几秒钟后:

2013-05-08 13:58:54.417  DEBUG | -[DatasetSubBar createDisplayPanelCells] | cell.dataset.name: (null)
2013-05-08 13:58:54.417  DEBUG | -[DatasetSubBar createDisplayPanelCells] | cell.dataset: <SavedAnalysis: 0x22b0a4d0> (entity: SavedAnalysis; id: 0x22bba720 <x-coredata://42CA4347-1DF1-4C6B-AB44-03EFE3D86F3A/SavedAnalysis/p110> ; data: <fault>)

指向实体的指针仍然存在,但name属性为nil。

我检查数据库,实体仍在那里:

Dataset *test = [Dataset MR_findFirstByAttribute:@"imageHandle" withValue:self.testImageHandle inContext:[NSManagedObjectContext MR_contextForCurrentThread]];

DLog(@"MR_contextForCurrentThread | lost dataset: %@", test);

2013-05-08 13:58:54.408  DEBUG | -[DatasetSubBar createDisplayPanelCells] | MR_contextForCurrentThread | lost dataset: <SavedAnalysis: 0x1e8157a0> (entity: SavedAnalysis; id: 0x22bba720 <x-coredata://42CA4347-1DF1-4C6B-AB44-03EFE3D86F3A/SavedAnalysis/p110> ; data: {
    createDate = "2013-05-08 18:58:00 +0000";
    name = "Unsaved Analysis";
})

我感到困惑的是Entity的属性将变为零,而Entity本身仍然被引用,并且实体仍在数据库中。我正在使用ARC。

0 个答案:

没有答案