Сортировка NSArray и возвращение NSArray? - PullRequest
3 голосов
/ 31 марта 2010

Я просто смотрю на сортировку NSArray из NSNumbers в числовом порядке, но немного не уверен в том, как лучше поступить.По моему мнению, 001 и 002 довольно сопоставимы, поэтому я подозреваю, что любой из них подойдет.Для 003 я не уверен, что возвращение NSMutableArray, когда метод ожидает, что NSArray - хорошая практика, это работает, но это неудобно.

-(NSArray *)testMethod:(NSArray *)arrayNumbers {    
    // 001
    NSMutableArray *sortedArray = [NSMutableArray arrayWithArray:arrayNumbers];
    [sortedArray sortUsingSelector:@selector(compare:)];
    arrayNumbers = [NSArray arrayWithArray:sortedArray];
    return(arrayNumbers);   
}

.

-(NSArray *)testMethod:(NSArray *)arrayNumbers {    
    // 002
    NSMutableArray *sortedArray = [NSMutableArray arrayWithArray:arrayNumbers];
    [sortedArray sortUsingSelector:@selector(compare:)];
    arrayNumbers = [[sortedArray copy] autorelease];
    return(arrayNumbers);   
}

.

-(NSArray *)testMethod:(NSArray *)arrayNumbers {    
    // 003
    NSMutableArray *sortedArray = [NSMutableArray arrayWithArray:arrayNumbers];
    [sortedArray sortUsingSelector:@selector(compare:)];
    return(sortedArray);    
}

Ответы [ 3 ]

12 голосов
/ 31 марта 2010

Вам не нужен изменяемый массив вообще. Вы можете просто сделать:

NSArray* sortedArray = [arrayNumbers sortedArrayUsingSelector:@selector(compare:)];
5 голосов
/ 31 марта 2010

Я думаю, что вы можете просто позвонить

return [arrayNumbers sortedArrayUsingSelector:@selector(compare:)];
0 голосов
/ 30 декабря 2013

NSArray * sortedArray = [arrayNumbers sortedArrayUsingSelector: @selector (сравни:)];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...