1

私はウェブサイトの NSMutableDictionary を持っています

[dictionaryOfSites setObject:@"http://www.example.com" forKey:@"Example.com"];
[dictionaryOfSites setObject:@"http://www.site1.com" forKey:@"Site1"];
[dictionaryOfSites setObject:@"http://www.apple.com" forKey:@"Apple"];

辞書を並べ替えることができないことは知っています。しかし、他の人が NSMutableArray をキーとして使用していて、配列をソートできることを読んだことがあります。

したがって、新しいアレイをセットアップすると

[[arrayKey alloc] initWithObjects:@"Example.com", @"Site1", @"Apple", nil];

次に、最初のスニペットを次のように変更します

[dictionaryOfSites setObject:@"http://www.example.com" forKey:[arrayForKey objectAtIndex:0]];
[dictionaryOfSites setObject:@"http://www.site1.com" forKey:[arrayForKey objectAtIndex:1]];
[dictionaryOfSites setObject:@"http://www.apple.com" forKey:[arrayForKey objectAtIndex:2]];

この単純な問題では、3 つのサイトがあったため、「ハード」コーディングしました。サイトのリストが 100 だった場合、どうすれば同じことを行うことができますか? サイトの順序はどのように維持されますか?

配列をソートすると [arrayKey sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

インデックス 2 はインデックス 0 になりませんか? インデックス 0 になると、dictionaryOfSites の URL のラベルが間違っていることがわかります。

4

2 に答える 2

0

必要な作業は、NSDictionary オブジェクトを配列に格納し、その配列の値にアクセスして、必要に応じて並べ替えを行うことです。並べ替えのために実際に新しい文字列を保存することはありません。配列内のインデックスで辞書内の特定のキーの値を確認するだけです。

これは、辞書の配列をソートするための良いソースです

于 2013-05-07T20:20:30.897 に答える