Core Data
Entity
クラスの 1 つでマジカル レコードを作成します。コンテキストを保存Entity
し、カスタム Cell オブジェクトのプロパティに割り当てます。
次に、セル オブジェクトを表示する別のクラスに渡します。あるランダムな時点で、Entity
の属性がゼロになります。
Entity
私はまだデータベースで を見つけることができ、まだ有効です。セル オブジェクトが非参照になることはありません (クラス プロパティ配列に格納されます)。
したがって、私のプログラムのある時点で、これが次の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
間に、 のプロパティが nil になることに困惑しています。Entity
ARCを使用しています。