使用具有魔法记录的多个键进行排序时未找到键区

时间:2014-04-23 16:02:18

标签: ios objective-c xcode magicalrecord

当我尝试使用具有多个键的MR_findAllSortedBy函数时,我得到一个未找到keypath的错误。但是,当我使用此功能只有两个键路径之一时,它的工作原理。我无法理解为什么它不起作用。

我的代码

-(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 个答案:

答案 0 :(得分:9)

的第一个参数中必须没有空格
[Trajet MR_findAllSortedBy:@"isActive, date" ascending:YES]
     // remove this space ------------^

否则MagicalRecord将为密钥创建一个排序描述符&#34;日期&#34; 而不是&#34; date&#34;。