2011-04-23 77 views
6

我有一个NSMutableArray完整的NSDictionary对象。像这样帮我排序完整的NSDictionary对象NSMutableArray - Objective C

NSMutableArray *names = [[NSMutableArray alloc] init]; 
for (NSString *string in pathsArray) { 
    NSString *path = [NSString stringWithFormat:@"/usr/etc/%@",string]; 
    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:string,@"name",path,@"path",nil]; 
} 

pathsArray无法排序,所以我坚持与它的内部对象的顺序。我想按字母顺序排列名称数组中的对象:@字典中的“名称”。这可以轻松完成,还是需要几个级别的枚举?

编辑:Sort NSMutableArray

NSSortDescriptor类:我在这个问题上找到这样的答案。

NSSortDescriptor *sortName = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES]; 
[names sortUsingDescriptors:[NSArray arrayWithObject:sortName]]; 
[sortName release]; 

任何关心得到一些免费的答案点?

回答

18

尝试这样:

NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"name" 
              ascending:YES] autorelease]; 
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; 
NSArray *sortedArray = [names sortedArrayUsingDescriptors:sortDescriptors]; 

// names : the same name of the array you provided in your question. 
+0

谢谢!小心点,以获得令人敬畏的问题? =) – Justin 2011-04-23 19:32:57

+0

你为什么奇怪地创建变量而不立即为它们赋值的任何原因? – 2011-05-06 22:05:48

+0

@Jamie Chapman:现在看起来如何? – 2011-05-06 22:17:50

相关问题