通过比较Objective C中的字符串值对数组进行排序

时间:2013-01-25 05:52:51

标签: objective-c

我有一系列自定义对象。对象包含状态:付费或未付款。 我想排序数组像: 首次单击时,排序数组首先显示付费记录,然后显示未付费记录。 在第二次单击时,排序数组以显示未付记录,然后显示付费记录。

任何帮助?

2 个答案:

答案 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