Swift:突变型转换参数错误:无法对类型为'MyObjectType'又名'Dictionary <Int,Int>'的不可变值使用突变成员

问题描述

我有一个函数,我将字典[Int:Int]传递为inout T,并且需要将其写入Dictionary。包含此功能是协议的功能。

但是,将T转换为MyObjectType(字典)后,它变得不可变。

问题:在铸造后,如何使通用参数(可以作为结构,类,数组或字典传递)可变?

typealias MyObjectType = [Int : Int] // Key is a enum with Int as RawValue

static func myGenericFunction<T>(_ object: inout T) {    
    (object as! MyObjectType).updateValue(0,forKey: 1)    
}

我尝试将其强制转换为NSMutableDictionary,如下所示,该代码可成功编译,但在使用模拟器运行时会崩溃。

(object as! NSMutableDictionary)[Int(pMetric.selectedUnit)] = Int(pMetric.metricType)

感谢任何好的解决方案!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)