0

双方向の関係を持つ2つの管理対象オブジェクトがあります。これは、「セグメント」オブジェクトを含む「segmentWithDetails」です。

私が使う

NSEntityDescription *entity = [NSEntityDescription entityForName:@"SegmentWithDetails" 
                                          inManagedObjectContext:connectionDetailsService.connectionDetailsContext];
[fetchRequest setEntity:entity];

私のsegmentWithDetailsを取得します。これは問題なく動作します。

しかし、含まれているセグメントを取得しようとすると、nilになります。

私はそれを手に入れようとしました

Segment *segment = [segmentWithDetails valueForKeyPath:@"segment"];

Segment *segment = segmentWithDetails.segment;

しかし、これは機能しません(= nil)。NSFetchedResultsControllerの変更も試みました。私は以下を追加しました:

[fetchRequest setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObject:@"segment"]];
[fetchRequest setIncludesSubentities:YES];

しかし、これらはどちらも違いがないようです。Appleのすばらしいドキュメントから私が理解していることから、この関係は障害を使用して機能するはずです。

ここで何が欠けていますか?'segmentWithDetails'からリレーションシップオブジェクト'segment'にアクセスするにはどうすればよいですか?

4

2 に答える 2

4

説明どおりに機能するはずです。「セグメント」オブジェクト/関係が実際に存在し、実際のオブジェクトが含まれていることを確認しますか?この関係がオプションではないことをデータモデルで確認し、実際に何かを保存したコードを確認してください。

于 2010-01-25T16:26:59.963 に答える
1

問題が解決しました。データを読み取る方法ではなく、それを CoreData に入れる方法でした。上記の投稿されたコードは確かに正しいです。Jaanus さん、返信ありがとうございます。

于 2010-01-27T11:48:05.043 に答える