我的核心数据模型:
Playlist
=======
name
songs (to-many relationship to Song objects, NSOrderedSet)
播放列表中有多首歌曲,并且歌曲顺序很重要。
使用
NSOrderedSet
可以保持歌曲顺序,问题是当我想在表格视图中获取并显示播放列表的歌曲时,我不知道如何在NSFetchRequest
中使用这种优势。这是我获取播放列表的歌曲的方式:
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Song"];
request.predicate = [NSPredicate predicateWithFormat:@"ANY playlists = %@", self.playlist];
request.sortDescriptors = // ???
request.fetchBatchSize = 20;
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:managedObjectContext
sectionNameKeyPath:nil
cacheName:nil];
实际上,这是行不通的,因为
NSFetchedResultsController
需要带有排序描述符的提取请求。所以我有歌曲顺序,但是我不能按照那个顺序取它们吗?
最佳答案
我认为这是不可能的,您将需要以其他方式存储排序顺序。这是关于它的讨论:NSFetchedResultsController and NSOrderedSet relationships