使用具有神奇记录的多个键进行排序时找不到键路径

Posted

技术标签:

【中文标题】使用具有神奇记录的多个键进行排序时找不到键路径【英文标题】:Keypath not found when sorting with multiple keys with magical record 【发布时间】:2014-04-23 16:02:18 【问题描述】:

当我尝试将 MR_findAllSortedBy 函数与多个键一起使用时,我得到一个 keypath not found 错误。但是,当我仅将此功能与两个键路径之一一起使用时,它可以工作。我不明白为什么它不起作用。

我的代码

-(void)performActionOnEachTrajetWithBlock:(void (^) (Trajet *trajet, NSArray *previousTrajets))actionBlock

    NSMutableArray *previousTrajets = [NSMutableArray arrayWithArray:@[]];
    for (Trajet *trajet in [Trajet MR_findAllSortedBy:@"isActive, date" ascending:YES])
        actionBlock(trajet, [NSArray arrayWithArray:previousTrajets]);
        [previousTrajets addObject:trajet];
    
    return;

错误

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'keypath  date not found in entity <NSSQLEntity Trajet id=2>'

谢谢你帮助我。

【问题讨论】:

【参考方案1】:

第一个参数不能有空格

[Trajet MR_findAllSortedBy:@"isActive, date" ascending:YES]
     // remove this space ------------^

否则 MagicalRecord 将为键“日期”创建排序描述符 而不是“日期”。

【讨论】:

完美。非常感谢!

以上是关于使用具有神奇记录的多个键进行排序时找不到键路径的主要内容,如果未能解决你的问题,请参考以下文章

编译时找不到动态库

神奇的算法!看我如何用php实现计数排序

按多个键值对数据进行排序

通过具有日期值的单个键对对象数组进行排序

delphi2010 VCLskin5.6 编译时找不到文件

快速,在具有复合谓词的提取结果控制器中找不到实体的键路径