Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对多对多关系中的属性使用sortDescriptor 我有一个歌曲实体和一个播放列表实体 播放列表可以有多首歌曲,歌曲可以链接到多个播放列表 我有一个ListToSongs实体,它维护歌曲添加到播放列表的顺序。我没有在ios5中使用“有序关系”(我知道它的存在,我需要对我的模型进行更多的控制),我通过playtosong实体中的“sortOrder”字段存储顺序。因此,模式被建模为(关系名称写在下面的括号中):_Ios_Core Data_Nspredicate_Nssortdescriptor - Fatal编程技术网

如何对多对多关系中的属性使用sortDescriptor 我有一个歌曲实体和一个播放列表实体 播放列表可以有多首歌曲,歌曲可以链接到多个播放列表 我有一个ListToSongs实体,它维护歌曲添加到播放列表的顺序。我没有在ios5中使用“有序关系”(我知道它的存在,我需要对我的模型进行更多的控制),我通过playtosong实体中的“sortOrder”字段存储顺序。因此,模式被建模为(关系名称写在下面的括号中):

如何对多对多关系中的属性使用sortDescriptor 我有一个歌曲实体和一个播放列表实体 播放列表可以有多首歌曲,歌曲可以链接到多个播放列表 我有一个ListToSongs实体,它维护歌曲添加到播放列表的顺序。我没有在ios5中使用“有序关系”(我知道它的存在,我需要对我的模型进行更多的控制),我通过playtosong实体中的“sortOrder”字段存储顺序。因此,模式被建模为(关系名称写在下面的括号中):,ios,core-data,nspredicate,nssortdescriptor,Ios,Core Data,Nspredicate,Nssortdescriptor,歌曲(播放列表)(歌曲)列表 我想使用获取请求获取给定播放列表的所有歌曲 下面是对ListToSong的查询。这将获取所有播放歌曲的对象,我可以使用obj.song来获取歌曲对象。同时返回按sortOrder排序的数据。效果很好。(为了简洁起见,下面的代码片段是使用MagicalRecord编写的) 以下对Song实体的查询导致崩溃。如果我删除排序描述符并只是获取,它就会工作。因此,问题在于sortDescriptor“playlists.sortOrder”试图根据ListToSongs实体中

歌曲(播放列表)(歌曲)列表

我想使用获取请求获取给定播放列表的所有歌曲

下面是对ListToSong的查询。这将获取所有播放歌曲的对象,我可以使用obj.song来获取歌曲对象。同时返回按sortOrder排序的数据。效果很好。(为了简洁起见,下面的代码片段是使用MagicalRecord编写的)

以下对Song实体的查询导致崩溃。如果我删除排序描述符并只是获取,它就会工作。因此,问题在于sortDescriptor“playlists.sortOrder”试图根据ListToSongs实体中的属性进行排序

songFilter = [NSPredicate predicateWithFormat:@"ANY playlists.playlist == %@", filterList];    
songs = [FRSong MR_findAllSortedBy:@"playlists.sortOrder" ascending:YES withPredicate:songFilter inContext:ctxt];
在纯SQL(如下所示)中,我尝试在Song和ListToSong以及order by“sortOrder”字段之间进行连接

如何将上述SQL映射到coredata语法并给出正确的sortDescriptor


请注意,唯一的问题是如何在最后获得“orderbyt1.ZSORTORDER”,因为我无法正确指定sortDescriptor。在没有排序描述符的情况下,fetch请求可以正常工作。

我终于开始使用我问题中提到的“方法1”。我获取ListToSong实体,并使用obj.song获取相关的song对象。我使用RelationshipKeyPaths ForPrefetching来预取链接到ListToSong对象的song对象。

使用sortDescriptor时,崩溃日志是用于什么的?“此处不允许使用多个键”。这是有道理的。playlists是一个集合,它没有一个名为sortOrder的属性,但是如何指定该sortOrder属性呢?
songFilter = [NSPredicate predicateWithFormat:@"ANY playlists.playlist == %@", filterList];    
songs = [FRSong MR_findAllSortedBy:@"playlists.sortOrder" ascending:YES withPredicate:songFilter inContext:ctxt];
SELECT DISTINCT 0, t0.Z_PK, t0.Z_OPT, t0.ZNAME, t0.ZSEQ FROM ZSONG t0 JOIN ZFRLISTTOSONGS t1 ON t0.Z_PK = t1.ZSONG  WHERE  t1.ZPLAYLIST = ? order by t1.ZSORTORDER