1

我创建了一个属性列表,其中键为 1 到 11,所有值都为 0。

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

我有这些财产:

@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];

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

有什么帮助吗?

4

2 回答 2

1

您将需要对字典的键进行排序

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];
}
于 2012-06-28T10:22:16.723 回答
0

您可以在加载选择器之前对数组进行排序-

erfaringKeys = [erfaring allKeys];
erfaringKeys = [erfaringKeys sortedArrayUsingSelector:@selector(compare:)];
于 2012-06-28T10:20:28.783 回答