在NSMutableDictionary中亚侠,如果要添加一整個Dictionary可以使用方法:
<p><code>- (void)addEntriesFromDictionary:(NSDictionary<KeyType,ObjectType> *)otherDictionary</code></p>
但是在swift中裕照,并沒有類似的方法亏吝,只能一次設(shè)置一個值:
<p><code>mutating func updateValue(value: Value, forKey key: Key) -> Value?
</code></p>
所以如何解決這個問題呢?
除了自定義一個方法外把将,利用swift的新特性:重載操作符 += 是一個更優(yōu)雅而且易懂的做法
在一個swift文件中添加如下代碼:
<p><code>
func += <KeyType, ValueType> (inout left: Dictionary<KeyType, ValueType>, right: Dictionary<KeyType, ValueType>) {
for (k, v) in right {
left.updateValue(v, forKey: k)
}
}
</code></p>
調(diào)用時也很簡單:
<p><code>
let addedDict=["a":1,"b":2]
var dict=["c":3,"a":5]
dict += addedDict
</code></p>
+= 這個操作符系統(tǒng)已經(jīng)定義過了痒蓬,如果自定義的是一個系統(tǒng)沒有出現(xiàn)過的操作符魔眨,需要再聲明一次操作符。語法大概如下:
<p><code>infix operator <- {}
</code></p>
相關(guān)鏈接
How do you add a Dictionary of items into another Dictionary