我有一个可以通过结构中的静态变量访问的对象(解决方法,因为现在 swift 中缺少类变量支持),结构如下:
struct Constants{
static var myObj = MyObject()
}
MyObject 中有一个字典,如下所示:
class MyObject{
private var params = Dictionary<String,AnyObject>()
func addParam(key:String, value:AnyObject){
params[key] = value
}
}
现在在第一次调用这个对象时Contants.myObj.addParam("param", value:123)
一切都很好,并且 params 有内容["param":123]
。在第二次调用时Contants.myObj.addParam("param", value:456)
,我得到一个 EXC_BAD_ACCESS。
这是踢球者,这仅发生在 iOS 8.1 中。此外,如果我将该行添加let stupidHack = self.params
为我的方法的第一行addParam
,它工作正常。我的假设是它处理字典的可变性。let 可能会在初始化后以某种方式触发字典再次可变。
以前有没有其他人遇到过这个问题?关于如何解决它的任何想法?
谢谢!