我在我的应用程序中使用Parse,在获取对象时,我需要使用NSSortDescriptor
。我可以通过特定的字段/属性进行排序,但是该排序字段为nil的任何对象都会在结果中排在第一位。
我可以拥有它,以便排序字段中的nil对象最后出现吗?
感谢。
答案 0 :(得分:1)
很难让零排在最后。我的方法之一是:(a)你编写的基于块的NSComparator
强制最后的空值,或者(b)使用NSSortDescriptor
,但暂时或永久地用最大值替换空值为& #39; s超出数据范围,或(c)使用NSSortDescriptor
,简单排序,然后手动将空值移到末尾。
如果您没有与排序描述符结合,我会按照以下比较思路(a):(猜测您根据某些属性对PFObject进行排序)...
NSComparator comparator = ^(PFObject *objA, PFObject *objB) {
id someProperyA = objA[@"someProperty"];
id someProperyB = objB[@"someProperty"];
// two nulls are equal
if (!somePropertyA && !somePropertyB) return NSOrderedSame;
// any single null is bigger in your world, so sort it last
if (!somePropertyA) return NSOrderedDescending;
if (!somePropertyB) return NSOrderedAscending;
// otherwise use compare, or whatever you were planning to use
// with your NSSortDescriptor
return [somePropertyA compare:somePropertyB];
};