ios - 在 iOS 的属性列表中排序键

标签 ios sorting plist

我创建了一个包含键 1 到 11 的属性列表,所有键的值为 0。

该列表将用作选择器 View 的数据源。

我有这些属性:

@property (nonatomic, strong) NSDictionary *erfaring;
@property (nonatomic, strong) NSArray *erfaringKeys;

在实现文件中:

NSString *erfaringFile = [[NSBundle mainBundle]
                         pathForResource:@"Erfaring" ofType:@"plist"];
erfaring = [[NSDictionary alloc] initWithContentsOfFile:erfaringFile];
erfaringKeys = [erfaring allKeys];

问题是,当键被加载到选择器 View 中时,它们的排序是错误的,例如:7、3、8、4、11、9、5、1、6、2、10。

有什么帮助吗?

最佳答案

你需要对字典的键进行排序

NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:
                     @"String 1", @"1",
                     @"String 4", @"4",
                     @"String 3", @"3",
                     @"String 2", @"2", nil];

NSArray *sortedKeys = [dic keysSortedByValueUsingSelector:@selector(compare:)];

然后使用排序键进行迭代

for (NSString *sortedKey in sortedKeys) {
    NSString *value = [dic objectForKey:sortedKey];
}

关于ios - 在 iOS 的属性列表中排序键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11242449/

相关文章:

ios - 设备如何在CoreBluetooth中配对?

C++从排序的对象数组创建排序数组的最佳方法

java - 如何在 Java 8 中对 List<Object> 进行排序

jquery - JSON 的问题

xml - excel 到 cocoa 中的 plist 转换,反之亦然

ios - 在另一个 viewController 的自定义单元格中更新进度 View

ios - 使用 Swift 对两个数组进行排序

ios - Xcode本地化文件复制不正确

iphone - iOS 真的可以支持 AES 256 吗?

ios - 如何在 iOS 7 中将 CSV 文件关联到我的应用程序