2010-03-31 5 views
3

Я просто смотрю на сортировку NSArray из NSNumbers в числовой порядок, но я немного не уверен в лучшем пути. По моему способу мышления 001 и 002 довольно сопоставимы, поэтому я бы подозревал, что либо поступит. Для 003 я не уверен, что вернусь NSMutableArray, когда метод ожидает NSArray, это хорошая практика, он работает, но это неудобно.Сортировка NSArray и возврат 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);  
} 

ответ

12

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

NSArray* sortedArray = [arrayNumbers sortedArrayUsingSelector:@selector(compare:)]; 
+0

Спасибо, Джейсон, полностью пропустил этот, очень ценный. – fuzzygoat

5

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

return [arrayNumbers sortedArrayUsingSelector:@selector(compare:)]; 
+0

спасибо, zondle. – fuzzygoat

0

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