按字母顺序对plist中的项目进行排序

时间:2014-05-23 17:43:04

标签: ios objective-c nsdictionary plist

我在按字母顺序显示从“plist”中提取的数据时遇到问题。这是我从“plist”中提取一些数据并将其显示在我的tableView中的行。

[self.objects addObjectsFromArray:[[NSDictionary dictionaryWithContentsOfFile:[[NSBundle 
mainBundle] pathForResource:@"Climb Data" ofType:@"plist"]] allKeys]];

我在Java中知道它会像Collections.sort一样,但我似乎无法找到Objective-C中的等价物。

感谢您的任何意见。

1 个答案:

答案 0 :(得分:1)

不要在一行代码中做很多事情。它使得弄清楚和调试变得太难了。它也不会使代码更快。

首先加载字典。

然后使用allKeys将密钥加载到数组中。

然后创建数组的排序版本。

NSString *path = [[NSBundle mainBundle] pathForResource:@"Climb Data" ofType:@"plist"];
NSDictionary *dictionary =[NSDictionary dictionaryWithContentsOfFile: path];
NSArray *keysArray = [dictionary allKeys];

最后一步很简单:

NSArray *sortedArray = [keysArray sortedArrayUsingSelector: @selector(compare:)];

您也可以使用caseInsensitiveCompare:

还有像sortedArrayUsingComparator:这样的方法,它们采用比较器块(您提供的代码块)对数组进行排序。您的代码块是一个基元,用于比较数组中的对象对。 sort方法重复调用块,并使用这些调用的结果对数组进行排序。

相关问题