我有一系列自定义对象。对象包含状态:付费或未付款。 我想排序数组像: 首次单击时,排序数组首先显示付费记录,然后显示未付费记录。 在第二次单击时,排序数组以显示未付记录,然后显示付费记录。
任何帮助?
答案 0 :(得分:2)
你可以尝试下面的声明:
NSSortDescriptor *Sorter = [NSSortDescriptor sortDescriptorWithKey:@"yourfield" ascending:YES selector:@selector(caseInsensitiveCompare:)];
[yourArray sortUsingDescriptors:[NSArray arrayWithObject:Sorter]];
答案 1 :(得分:0)
你可以这样做:
- (IBAction)sort:(id)sender {
static BOOL isPaidFirst=YES;
NSSortDescriptor *Sorter = [NSSortDescriptor sortDescriptorWithKey:@"isPaid"
ascending:!isPaidFirst
selector:@selector(compare:)];
[self.array sortUsingDescriptors:[NSArray arrayWithObject:Sorter]];
isPaidFirst=!isPaidFirst;
for (MyObject *obj in self.array) {
NSLog(@"-->%@, %ld, %d",obj.courseName, obj.totalFee, obj.isPaid);
}
NSLog(@"------------------");
}
这里的MyObject如下:
@interface MyObject : NSObject
@property(strong)NSString *courseName;
@property NSInteger totalFee;
@property BOOL isPaid;
@end