2011-09-02 84 views
0

可能重复:
How to sort a NSArray alphabetically?如何对NSArray进行排序?

我使用以下代码来从数据的NSArray加载到UITableView的。

我该如何按字母顺序对它们进行排序? 煤矿是NSArrayNSMutableArray也不是我使用Dictionary

defaultVot = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:pathToVot error:&error]; 

NSString *fileName = [[defaultVot objectAtIndex:indexPath.row-1] lastPathComponent]; 

NSString *filenameWithoutExtension = [fileName substringToIndex:[fileName length] -4]; 

cell.textLabel.text = filenameWithoutExtension; 
+2

也许这[link] [1]会有所帮助。 [1]:http://stackoverflow.com/questions/1351182/how-to-sort-a-nsarray-alphabetically – mayuur

回答

2
sortedArray = [yourArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; 
1

你可以看到如何做到这一点Apple's documentation

作为一个例子:

// From the Documentation 
sortedArray = 
    [anArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; 

这将返回使用该规则的当前区域排序的新阵列(在不区分大小写的方式)。

3

你可能应该先排序你的数组。 (可能在加载列表时)。然后使用已排序的数组作为数据源。

NSArray * defaultVot = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:pathToVot error:&error]; 
NSMutableArray * array = [NSMutableArray arrayWithCapacity:[defaultVot count]]; 
for (NSString * f in defaultVot){ 
    NSString *fileName = [f lastPathComponent]; 
    NSString *filenameWithoutExtension = [fileName substringToIndex:[fileName length] -4]; 
    [array addObject:filenameWithoutExtension]; 
} 
NSArray * sortedArray = [array sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];