-4

カスタム オブジェクトの配列があります。オブジェクトには status が含まれます: 支払済みまたは未払い。次のように配列を並べ替えたい: 最初のクリックで、配列を並べ替えて、最初に有料レコードを表示し、次に未払いレコードを表示します。2 回目のクリックで、配列を並べ替えて、未払いのレコード、次に有料のレコードを表示します。

助けはありますか?

4

2 に答える 2

2

以下のようなステートメントを試すことができます:

NSSortDescriptor *Sorter = [NSSortDescriptor sortDescriptorWithKey:@"yourfield" ascending:YES selector:@selector(caseInsensitiveCompare:)];
[yourArray sortUsingDescriptors:[NSArray arrayWithObject:Sorter]];
于 2013-01-25T05:56:48.983 に答える
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
于 2013-01-25T06:54:33.030 に答える