orderBySortDescriptor没有调用选择器

时间:2014-09-23 17:24:53

标签: objective-c parsing sorting nsarray

从不调用选择器compareUserObject:toObject:并且仅通过将状态与简单的相等性检查进行排序来对数组进行排序。该查询是Parse查询。如何调用自定义比较器(compareUserObject:toObject :)?

 NSSortDescriptor *statusDescriptor = [[NSSortDescriptor alloc]
                                      initWithKey:@"status"
                                      ascending:NO
                                      selector:@selector(compareUserObject:toObject:)];

[query orderBySortDescriptor:statusDescriptor];

1 个答案:

答案 0 :(得分:1)

那是因为你传递了2个参数。看看这个文档:

https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSSortDescriptor_Class/index.html#//apple_ref/occ/instm/NSSortDescriptor/initWithKey:ascending:selector

"比较对象属性时使用的方法,例如caseInsensitiveCompare:或localizedCompare:。选择器必须指定由keyPath标识的属性值实现的方法。 用于比较的选择器传递一个参数,即要与self进行比较的对象,并且必须返回相应的NSComparisonResult常量。选择器必须 具有相同的方法签名:"

- (NSComparisonResult)localizedCompare:(NSString *)aString