1

6つのアイテムを含むplistファイルがあります。

ここに画像の説明を入力

それを配列にロードしてテーブルビューに表示すると、上記のようにソートされず、次のようになります。

ここに画像の説明を入力

これは私が使用しているコードです:

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

私が使用するのはまだソートされていませんallValues

どうすれば正しくできますか?

4

2 に答える 2

1

私が理解していることから、NSDictionaryは(皮肉なことに)特定の方法(アルファベット、数字、値、インデックスなど)でplistからアイテムを並べ替えないので、plistからの順序を維持するには、NSArrayを使用する必要があります。

私は私のものを修正することができませんでしたが、このリンクは他の人が持っていることを示しているようです...

PlistアレイをNSDictionaryに

于 2012-06-18T03:25:57.147 に答える
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);
    }   
}
于 2012-06-12T05:44:31.873 に答える