我試圖創建的類型[NSObject:AnyObject]
擴展上迅速可變字典
這裏可變字典擴展爲[NSObject:AnyObject]
在斯威夫特一個不變的詞典擴展語法:
extension Dictionary where Key:NSObject, Value:AnyObject {
func addSomething() {
// Fails
self["ExampleKey"] = "ExampleValue"
}
}
然而,這種情況下self
不能附加到,因爲擴展工作在不可變的字典上。問題是缺少什麼語法才能爲專有可變字典進行擴展。
編輯:更新,以解決歧義
更新:
通過添加mutating
前綴addSomething
,我可以操作只可變dictionarys。好極了!然而,該功能仍不能正常工作
mutating func addSomething() {
// Error: Cannot subscript a value of type 'Dictionary<Key, Value>' with an index of type 'String'
self["ExampleKey"] = "ExampleValue"
}
如果我投"ExampleKey"
一個關鍵,我得到另一個錯誤:
mutating func addSomething() {
let key = "ExampleKey" as! Key
// Error: Ambiguous reference to member 'subscript'
self[key] = "ExampleValue"
}
仍在研究如何使這個簡單的除了工作...
這是什麼問題? –
或郵編不工作... –
或對您的問題的活動作出迴應...高興地幫助,並且我相信,如果您改進問題,downvoters會很樂意upvote –