从列出的Plist加载NSDictionary

New*_*per 5 objective-c nsdictionary plist ios

plist用来存储键值列表.当应用程序需要该列表时,尝试加载列表到NSDictionary.一切都很好,直到这里.

我在这里加载plist文件:

NSString *myPlistFilePath = [[NSBundle mainBundle] pathForResource: @"cities" ofType: @"plist"];
cities = [NSDictionary dictionaryWithContentsOfFile: myPlistFilePath];
Run Code Online (Sandbox Code Playgroud)

当我们看,cities是一个NSDictionary.然后我将所有列表键值推送到TableView,不知道它在plist文件中没有列出.随机排序.

有没有办法搞清楚?提前致谢.

Joa*_*son 4

NSDictionary不是有序集合,也就是说,它不保证以任何方式保留内容的顺序它唯一的功能是将键映射到值。

如果您需要排序的内容,您可以使用例如keysSortedByValueUsingSelector从NSDictionary中提取它,它将提取集合中的数据,按您的标准对其进行排序并将其存储在(保留顺序)NSArray中。

或者,考虑在 plist 的根中使用数组,其中包含城市字典的有序列表。然后,如果您迭代其中包含的数组,它们将按照 plist 中包含的数组顺序排列。