Core Data は初めてです。
データモデルにはエンティティがあります:
Song
Playlist
これは関係です:
- すべてが no、1 つまたは複数の
Song
に属しますPlaylist
このようにモデルに関係を追加しました。
逆のTo-Many Relationshipも作成しました。
今私の質問。
はすべて s の になりPlaylist
ました。
だから私は経由でそれらにアクセスできます。NSSet
Song
playlist.songs
Song
を使用して特定のものを取得できますNSPredicate
。
- (NSArray *)fetchWithEntity:(NSString *)entity
predicate:(NSPredicate *)predicate
sortDescriptors:(NSArray *)sortDescriptors
error:(NSError **)error {
NSManagedObjectContext *moc = [self managedObjectContext];
NSEntityDescription *entityDescription = [NSEntityDescription
entityForName:entity
inManagedObjectContext:moc];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
[request setPredicate:predicate];
[request setSortDescriptors:sortDescriptors];
NSArray *fetchResult = [moc executeFetchRequest:request error:error];
return fetchResult;
}
ただし、 で をフィルタリングするSong
のではなく、特定のプレイリストの もフィルタリングできるようにしたいと考えています。単純に高速であるためです。NSSet
NSPredicate
これどうやってするの?