我希望能够根据标签值对对象的 NSArray 进行排序。问题是如果标签为 0,我希望它被推到数组的末尾。
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"tag" ascending:TRUE];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray = [self.array sortedArrayUsingDescriptors:sortDescriptors];
这将返回索引前面带有标签的所有对象(就像它应该的那样)。
我希望标签值 > 0 位于前面,所有标签值 0 位于末尾。
我虽然块会起作用,类似于:
NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
NSDate *first = [(Person*)a birthDate];
NSDate *second = [(Person*)b birthDate];
return [first compare:second];
}];
我在另一个 SO question中找到,但不确定如何添加条件
if (obj.tag == 0) {
// push to end of array
}
有什么建议么?