我添加了从播放列表中删除歌曲(playlistTrack)的功能。每个playlistTrack都有一个与它关联的playlist_track_number,因此我们知道要播放歌曲的顺序。因此,在删除播放列表跟踪后,我需要分配所有播放列表跟踪新播放列表_track_number,即比先前playlist_track_number小1。魔法记录CoreData删除记录并重新编号
我的代码在这里运行良好,然后崩溃与控制台显示“'不能做正则表达式匹配对象3”。任何帮助?
NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];
NSPredicate *predicateList = [NSPredicate predicateWithFormat:@"(playlist.name CONTAINS[cd] %@)", activePlaylistString];
NSArray *newArray = [[NSArray alloc]init];
newArray = (NSArray*)[Playlist_Track MR_findAllWithPredicate:predicateList];
for (int i = (delTrack + 1); i <= [newArray count]; i++) {
localContext = [NSManagedObjectContext MR_contextForCurrentThread];
NSString *nextTrackNumberString = [NSString stringWithFormat:@"%i",i];
NSPredicate *nextPredicate = [NSPredicate predicateWithFormat:@"(playlist.name CONTAINS[cd] %@) AND (playlist_track_number MATCHES [cd] %@)", activePlaylistString, nextTrackNumberString];
nextTrack = [Playlist_Track MR_findFirstWithPredicate:nextPredicate inContext:localContext];
if (nextTrack) {
int j = i-1;
nextTrack.playlist_track_numberValue = j;
[localContext MR_saveToPersistentStoreWithCompletion:nil];
}
if (!nextTrack) {
//Do Nothing
}
}
您是否认为这实际上是造成这个问题,或者它只是一个建议作为最佳实践? – Fluffhead