当我尝试使用具有多个键的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>'
感谢您帮助我。
答案 0 :(得分:9)
的第一个参数中必须没有空格
[Trajet MR_findAllSortedBy:@"isActive, date" ascending:YES]
// remove this space ------------^
否则MagicalRecord将为密钥创建一个排序描述符&#34;日期&#34; 而不是&#34; date&#34;。