0

int を含む NSStrings を含む NSMUtableArray のソートに小さな問題があります。こんな感じで並べています

    scoreString=[NSString stringWithFormat:@"%lld",GameScore];
    [scorearr addObject:scoreString];
    NSSortDescriptor* sortOrder = [NSSortDescriptor sortDescriptorWithKey: @"self" ascending: NO];
    NSArray *scoreArray= [scorearr sortedArrayUsingDescriptors: [NSArray arrayWithObject: sortOrder]];
    scorearr =(NSMutableArray *)ary;
4

2 に答える 2

1

可変配列を使用しているので、次のように記述したほうがよいでしょう。

NSSortDescriptor* sortOrder = [NSSortDescriptor sortDescriptorWithKey: @"self" ascending: NO];
[scorearr sortUsingDescriptors:[NSArray arrayWithObject: sortOrder]];

そうすれば、ソート時に新しい配列を作成することはありません。

于 2012-05-05T11:15:39.767 に答える
0

わかりました、これで終わりです。

    NSNumber *inrank=[NSNumber numberWithInt:GameScore];
    scoreString=[NSString stringWithFormat:@"%lld",GameScore];
    [scorearr addObject:inrank];
    NSLog(@"%@",scorearr.description);
    //sorting array
    sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
    NSSortDescriptor* sortOrder = [NSSortDescriptor sortDescriptorWithKey: @"self" ascending: NO];
    NSArray *scoreArray= [scorearr sortedArrayUsingDescriptors: [NSArray arrayWithObject: sortOrder]];
    scorearr =(NSMutableArray *)scoreArray;
    NSLog(@"%@",scoreArray.description);
于 2012-05-05T11:06:37.067 に答える