2012-06-28 81 views
1

我已经创建了一个属性列表与键1至11中,所有与值0在属性列表排序键在IOS

的列表要被用作数据源为一选择器视图。

我有这些属性:

@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

任何帮助?

回答

0

可以在picker-

erfaringKeys = [erfaring allKeys]; 
erfaringKeys = [erfaringKeys sortedArrayUsingSelector:@selector(compare:)]; 
+0

感谢排序装货前的阵列,但是当值的键被设置为“数字”,它不工作。将它们设置为 “字符串” 对它们进行分类1,10,11,2,3,4,5,6,7,8,9 –

+0

您可以检查此线程解决这个问题 - http://stackoverflow.com/questions/ 4558761 /排序-AN-的NSArray-的-的NSString – rishi

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