7

NSPredicateクラスのエンティティでフィルタリングするにはどうすればよいContactですか?

オブジェクト クラスクラッシュの種類の NSPredicate チェックの解決策:

[NSPredicate predicateWithFormat:@"person.class == %@", [Contact class]];

*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
    reason: 'keypath person.class not found in entity <NSSQLEntity User id=12>'

バックグラウンド

コア データ エンティティUser(アプリ ユーザー) とContact(アドレス帳の連絡先) があり、どちらもPerson(抽象エンティティ) の子です。には、 、、またはPersonが多数identitiesあります。emailsphonesusernames

NSFetchRequestテキストメッセージのようなタイプアヘッドを作成するために、 forIdentityエンティティを作成したいと思いpersonますContact

4

2 に答える 2

2

あなたはおそらくいくつかのことを混同しています。あなたが示す答えは、UIViewsの配列をフィルタリングするための述語についてです。コアデータの述語は、わずかに異なる方法で機能します。

目的の結果を得るにentityは、フェッチリクエストのをに設定するだけ@"Contact"です。

于 2012-04-02T23:30:24.127 に答える
0

Contact に必須フィールドがある場合は、そのフィールドが null でないことをフィルタリングできます。Contact に必須フィールドがない (Person にはない) 場合は、ダミーの必須フィールドを追加して、そのフィールドをフィルター処理できます。

于 2012-04-04T04:59:45.887 に答える