У меня есть объект, доступный через статический var в структуре (обходной путь для отсутствия поддержки переменных класса в 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 может каким-то образом заставить словарь быть изменчивым снова после инициализации.
Кто-нибудь еще сталкивается с этой проблемой раньше? Любая идея о том, как его исправить?
Спасибо!