2

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 になることに困惑しています。EntityARCを使用しています。

4

0 に答える 0