0

plistに保存する他のNSDictionariesを含むNSDictionaryがあります。そのインデックスは、(かなり巨大な) 整数で構成される NSNumbers です。

plistから辞書を再ロードして反復しようとすると

for(NSDictionary *dict in loadedDict){
    nslog(@"dict %@", dict);
}

これにより、ディクショナリのキーのみを含む出力が得られますが、予想どおり、ディクショナリ自体のダンプは含まれません。

含まれている辞書を取得するには、次のことを行う必要があります。

NSArray *allKeys = [loadedDict allKeys];
for(NSString *key in allKeys){
    nslog(@"dict %@", [loadedDict objectForKey:key]);
}

そして、はい、キーは実際には NSNumbers に変換された整数です...

キャッチは何ですか?

助けてくれてありがとう...

4

1 に答える 1

2

辞書の高速列挙はキーを返します。

http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/Chapters/ocFastEnumeration.html

表示されているのは、予想される動作です。

ブロックを使用して、キーと値の両方に明示的にアクセスすることを検討してください。

[loadedDict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
    // use key and obj...
}];
于 2012-04-28T00:09:24.763 に答える