2012-06-11 174 views
1

我有一個plist文件,裏面有6個項目。NSDictionary + NSArray + plist

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

我該怎麼做纔對?

回答

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); 
    } 
} 
1

據我瞭解,NSDictionary的(諷刺)不下令從plist中的任何具體方式進行的項目(字母,數字的,值,指數等),你必須使用NSArray才能保留plist的命令。

我一直沒能解決我的,但這種聯繫似乎告訴別人有...

Plist Array to NSDictionary