我是核心数据的新手。
在数据模型中,我有实体:
Song
Playlist
这是关系:
- 每一个都属于
Song
no、one或multiplePlaylist
我已经像这样将关系添加到模型中。
我还建立了反向多对多关系。
现在我的问题。
的Playlist
现在有一个NSSet
与所有的Song
s。
所以我可以通过playlist.songs
.
我可以Song
使用 a获取任何特定的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
特定播放列表的 s ,而不必用 过滤NSSet
,NSPredicate
因为它更快。
我怎样才能做到这一点?