0

私には2つのエンティティがIssueありUser、サーバーから来るデータを表すために使用しています。IssueとUsersの間には多対多の関係があり、サーバーからIssueを取得すると、オブジェクトにはユーザーIDの配列があります。

後でサーバーからユーザーを取得するときに、IDが一致する保存済みの問題を見つけられるようにしたいと思います。

私は、各問題のユーザーIDを格納するために変換可能なプロパティを使用することを計画していました。ただし、変換可能なプロパティはクエリできないことを読みました。本当?もしそうなら、クエリ可能な配列プロパティを作成するにはどうすればよいですか?

4

2 に答える 2

3

エンティティの変換可能な属性として格納されている配列内のエントリをクエリできないのは正しいことです。

考えられる解決策の 1 つは、ユーザー ID のリストをコンマ区切りの文字列属性としてIssueエンティティに格納し、後でここで説明されているように一致する ID を検索することです: Form NSPredicate from string that contains id's .

別の解決策は、問題を読み取って作成するときに、最初のパスで既にからIssueへの関係を作成することです。サーバーからユーザー ID のリストを含む課題を取得すると、オブジェクトをUser検索または作成して関係を設定します。User

于 2013-03-11T12:03:37.963 に答える
0

多対多の関係を持つ 2 つのエンティティを使用しているため、core-data を使用して関係を実装してみませんか? つまり、usersSet(say) inIssueエンティティは になりNSSetissuesSetinUserも になりますNSSet。その場合は、以下の方法で述語を実装して、必要なものを簡単に取得できます。

Issue(以下のコードは、 to Useris間の対多関係を想定していusersSetます。)

User *userObjFromServer = <your user object from server>... 
NSString *userId = userObjFromServer.userId; //Whichever way you are doing this
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY usersSet.userId like %@",userId]; 

あなたが話しているクエリ可能な配列は関係になります(唯一、その an NSSet)。

于 2013-03-11T13:40:04.343 に答える