0

私は ObjC の経験はありますが、Core Data は比較的新しいものです。今まではかなり簡単でしたが、私は人間関係に少し行き詰まっているので、誰かが私を正しい方向に向けてくれることを願っています.

2 つのエンティティがあります。1 つは人のリストで、もう 1 つはイベントのリストです。

2 つのエンティティ間のデータ モデルに逆の関係 (「人」と呼ばれる) を設定し、人側を「対多」に設定しました。言い換えれば、5 人でも数千のイベントを持つことができます。各イベントは 1 人の人物に関連付けられていますが、1 人の人物が任意の数のイベントを担当する可能性があります。

[NSEntityDescription insertNewObjectForEntityForName...] を使用してイベントを追加し、NSFetchedResultsController でそれらを取得します。

問題は、特定のイベント オブジェクトをフェッチするときに、人物に関するデータをまだ正常に取得できていないことです。例:

Log *logEntry = [_fetchedResultsController objectAtIndexPath:indexPath];

// this works:

NSLog(@"description: %@", logEntry.description);
NSLog(@"happened %i minutes ago", -[logEntry.date timeIntervalSinceNow] / 60);

// this does not (just spits out NULL):

NSLog(@"person responsible: %@", logEntry.people.name);

私は何が欠けていますか?交際中の人物に関するデータを取得するにはどうすればよいですか? 最初にログ エントリを追加する際の重要なリンク、またはログ エントリを取得する際に必要な述語を省略したような気がします。Apple のドキュメントは、関係や具体的な例に関しては少し不足しています。ここでは、まだ昔ながらの SQL に頭を悩ませているかもしれないので、本当に助けが必要です。ありがとう!

4

1 に答える 1

2

人が複数の人である場合、それはセットとして返されます。したがって、logEntry.people は人の NSSet を返します。これをループして People を取得し、その人の名前を要求できるようにする必要があります。

複数のオブジェクトとの関係は、セットとしてモデル化されます (現在 iOS で)。

于 2011-05-02T20:43:30.167 に答える