3

私は Apple の Predicate Programming Guide と SO も精査しており、特定のフェッチ要求の述語を記述する正しい方法を決定しようとしています。

関係をトラバースするためにドット表記を使用しようとしている方法が、リクエストによって尊重されていないようです。

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Task" inManagedObjectContext:context];

[fetchRequest setEntity:entity];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"project.user == %@", self.user];

[fetchRequest setPredicate:predicate];

ユーザー、プロジェクト、およびタスクはすべて、BaaS プロバイダー (StackMob) にマッピングされるコア データ エンティティです。

関係は次のとおりです。ユーザー の 1 対多 プロジェクト の 1 対多 期待どおりの逆の関係を持つタスク。私がやろうとしているのは、現在ログインしているユーザーのすべてのタスクを取得することです。だから、私の考えは、エンティティ「タスク」でフェッチ要求を送信することです。タスクを所有するプロジェクトがログインしているユーザーによって所有されている場合、そのタスクを取得して表示します。十分に単純です。

そして、上に示した述語でドット表記を使用できるはずだと思いますが、フェッチ要求は nil を返しています。

フェッチ要求に関する他のすべては問題ありません。フォーマット文字列を に変更すると@"project != NULL"、すべてのタスクが返されます。

フォーマット文字列を間違って書いているだけですか? StackMob にフェッチ リクエストを送信するとき、ドット表記は何らかの形で有効ではありませんか?

いつものように、どんな助けも大歓迎です。

さらに情報が必要な場合はお知らせください。今は少し近すぎてはっきり見えません。

4

1 に答える 1