8

other を含む がありNSMangedObjectます。NSSetNSManagedObjects

これらのオブジェクトに値があるかどうかを確認してNSSetから返す必要があります。

データの取得には MagicalRecord を使用します。

だから私はこのようなものが必要です:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"stringObjects contains %@", string];

したがって、NSSet stringObjects に探している文字列が含まれている場合は、要求したオブジェクトを返します。

ここで 1 つ注意してください: stringObjects (たとえば、 my を表す名前NSSet) にはNSSetNSManagedObjects が含まれているため、ID (string_id 属性など) で検索する必要があります。

したがって、モデルは次のようになります

NSSet *set = MainObject.stringObjects;
NSString *string_id_for_first_object = [[[set allObjects] objectAtIndex:0] string_id];

関係をよりよく理解するためだけに。

しかし、問題は、NSSet に必要な ID が含まれているかどうかを確認する述語を作成する方法についてです。

4

1 に答える 1

17

あなたの質問を正しく理解していれば、あるエンティティAから別のエンティティBstringObjectsへの対多関係であり、Bには属性があります。string_id

指定された を持つ任意のBオブジェクトに関連するすべての Aオブジェクトを見つけるには、次を使用します。string id

NSString *stringId = …; // The string that you are looking for
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY stringObjects.string_id == %@", stringId];
于 2013-11-11T11:51:20.717 に答える