NSDictionary + NSArray + plist

时间:2012-06-11 13:50:40

标签: nsarray plist nsdictionary

我有一个plist文件,里面有6个项目。

enter image description here

当我将它加载到一个数组并在表视图中显示时,它没有像上面那样排序,看起来像这样:

enter image description here

这是我正在使用的代码:

NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"ghazal2" ofType:@"plist"];
myDictionary = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
myArray = [myDictionary allKeys];

当我使用allValues

时,它仍未分类

我怎样才能做对?

2 个答案:

答案 0 :(得分:1)

根据我的理解,NSDictionary(具有讽刺意味)不会以任何特定的方式(字母,数字,值,索引等)从plist中订购项目,您必须使用NSArray才能保留订单来自plist。

我无法修复我的,但这个链接似乎表明其他人有...

Plist Array to NSDictionary

答案 1 :(得分:0)

这是解决方案:

- (void)viewDidLoad
{
    [super viewDidLoad];

    if (!myArray2) // myArray2 is NSMutableArray
    {
        myArray2 = [[NSMutableArray alloc] init];
    }

    NSString *path = [[NSBundle mainBundle] pathForResource:@"list" ofType:@"plist"];
    NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];

    NSArray *sortedArray = [[dict allKeys] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];

    for(NSString *key in sortedArray) 
    {      
        [myArray2 addObject:[dict objectForKey:key]];
    }

    for(NSString *key in myArray2) 
    {      
        NSLog(@"it is: %@", key);
    }   
}