排序NSArray并返回NSArray?

fuz*_*oat 3 iphone cocoa-touch objective-c

我只是想把数字顺序排序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);   
}
Run Code Online (Sandbox Code Playgroud)

.

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

.

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

Jas*_*oco 12

你根本不需要一个可变数组.你可以这样做:

NSArray* sortedArray = [arrayNumbers sortedArrayUsingSelector:@selector(compare:)];
Run Code Online (Sandbox Code Playgroud)


zon*_*ble 5

我想你可以打电话

return [arrayNumbers sortedArrayUsingSelector:@selector(compare:)];
Run Code Online (Sandbox Code Playgroud)