我正在尝试使用NSSortDescriptor
并对具有一组“设备”的“单元”进行排序。每个设备都有信号强度。我想按信号强度最高的设备对单位进行排序。我刚刚找到了一个关于集合运算符的页面,我想我已经很接近了,但是我仍然不能完全正常工作。
NSSortDescriptor *rssiSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"devices.@max.signalStrength" ascending:[self sortByRSSIAscending]];
我猜这里的问题是不能将设备彼此直接比较,因此@max运算符不起作用。有没有一种方法可以覆盖它以按信号强度进行比较?
我已将其添加到我的设备型号中:
- (NSComparisonResult)compare:(PersistedNokeDevice*)other
{
if (self.signalStrength < other.signalStrength) {
return NSOrderedAscending;
}
if (self.signalStrength == other.signalStrength) {
return NSOrderedSame;
}
return NSOrderedDescending;
}
我收到此错误Keypath containing KVC aggregate where there shouldn't be one; failed to handle devices.@max.signalStrength
是否有办法使这项工作奏效,或者我需要重新考虑自己的策略?