0

私は読み込もうとしていますが、plistにも書き込む必要があります。

これまでのところ、内容を単純に読み取ろうとしています。

ここに私の appSettings.plist があります:

ここに画像の説明を入力

NSBundle* bundle = [NSBundle mainBundle];
NSString* plistPath = [bundle pathForResource:@"appSettings" ofType:@"plist"];
NSDictionary *tmp = [[NSDictionary alloc] initWithContentsOfFile:plistPath];

私はこれをやろうとしました:

NSArray *mruItems = [[NSArray alloc] initWithArray:[tmp objectForKey:@"lastSearches"]];

しかし、それはエラーをスローします。[tmp objectForKey:@"lastSearches"] タイプで行ったチェックにより、これが NSArray ではないことが明らかになりました...

内容を NSArray に読み込むにはどうすればよいですか?

ありがとう!

(書き方についても教えていただけると嬉しいです)

4

2 に答える 2

2

上のスクリーンショットを見ると、「lastSearches」がリストではなく辞書であることがかなり明らかであることがわかります。代わりに、そこでタイプを配列タイプに切り替えることを試みることができ、それはあなたのために働くはずです。

別の解決策は、その辞書のキーを反復処理することです。

NSDictionary *lastSearches = [tmp objectForKey:@"lastSearches"];
for (NSString *key in lastSearches.allKeys)
{
  NSString *value = [lastSearches objectForKey:key];
}

これは正常ではないことに注意してください。おそらく、それを繰り返す前にソートする必要があります。

于 2012-07-11T12:48:04.067 に答える
1

確かにそれは配列ではなく辞書です(あなたの画像を見てください)。

于 2012-07-11T12:47:23.183 に答える