我在按字母顺序显示从“plist”中提取的数据时遇到问题。这是我从“plist”中提取一些数据并将其显示在我的tableView
中的行。
[self.objects addObjectsFromArray:[[NSDictionary dictionaryWithContentsOfFile:[[NSBundle
mainBundle] pathForResource:@"Climb Data" ofType:@"plist"]] allKeys]];
我在Java中知道它会像Collections.sort
一样,但我似乎无法找到Objective-C中的等价物。
感谢您的任何意见。
答案 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方法重复调用块,并使用这些调用的结果对数组进行排序。