私の場合、私は、NSString
のオブジェクトをキーとし、NSString
とNSDictionary
のオブジェクトを値として持つことができるNSDictionary
オブジェクトを持っています。内部辞書には、NSDictionary
オブジェクトも含めることができます。内部のNSDictionary項目をすべて反復して変更しますか?
すべての内部オブジェクトを繰り返し処理し、それらに手紙を追加する必要がある場合はどうすればよいですか?注:私はスウィフトでは、両方の値とキー
私の場合、私は、NSString
のオブジェクトをキーとし、NSString
とNSDictionary
のオブジェクトを値として持つことができるNSDictionary
オブジェクトを持っています。内部辞書には、NSDictionary
オブジェクトも含めることができます。内部のNSDictionary項目をすべて反復して変更しますか?
すべての内部オブジェクトを繰り返し処理し、それらに手紙を追加する必要がある場合はどうすればよいですか?注:私はスウィフトでは、両方の値とキー
を変更する必要があります。
func adjustNextLayer(inDictionary dictionary: inout [String:Any], for key: String) {
if let newString = myDictionary[key] as? String {
myDictionary[key] = "\(newString) insert some text to append here"
} else {
If let newDictionary = myDictionary[key] as? [String: Any] {
newDictionary.keys.foreach { key in
adjustNextLayer(inDictionary: newDictionary, for: key}
myDictionary[key] = newDictionary
}
}
}
}
let myDictionary = ["a":1, "b":2]
let keys = myDictionary.keys
keys.foreach { key in
adjustNextLayer(inDictionary: myDictionary, for: key)
}
は、あなたが迅速に機能の内の関数を置くことができることを覚えておいてください。これはすべてそれ自身の1つの機能になります。
もちろん、flatMapを使用することもできますが、それはせいぜい2つのレイヤーにしかなりません。
キーを変更する場合は、前のキーをnilに設定してから、辞書に新しいエントリを作成してください。
完全な回答を書いてください。 –
これはあなたが探しているものですか? –
Obj-CかSwiftのどちらで作業しているかを少なくとも指定してください。 – Hamish
@Hamish Swiftでラップした場合、NSDictionaryは動作が異なりますか? – Willeke
NSDictionaryは変更できません。 – Willeke