Używam słownika do oceny wyrażenia, gdy wyrażenie ma zmienne, a słownik jest faktycznie używany przez NSExpression, coś się dzieje i otrzymuję EXC_BAD_ACCESS przy próbie aktualizacji słownik, dzieje się tak tylko podczas debugowania w telefonie iPhone6, a nie w symulatorze, a nie w iPhone 4S.EXC_BAD_ACCESS przy aktualizacji słownika Swift po użyciu go do oceny NSExpression
let strExpression = "a+b+20"
let exp = NSExpression(format:strExpression)
self.dictionary = ["a":10.0, "b":15.0, "c":25.0]
let value:AnyObject = exp.expressionValueWithObject(self.dictionary, context: nil)
let doubleValue = value as Double
self.dictionary.updateValue(doubleValue, forKey: "c")
Coś naprawdę dziwne jest to, że jeśli dodać tę linię tuż po utworzeniu słownika, to woks porządku:
let newDic = self.dictionary
Ja używam iOS 8.1. Z góry dziękuję!
Czy self.dictionary zadeklarowana z wylotem lub var? –
Prawdopodobnie jest to błąd kompilatora. Doświadczyłem tego samego. Zobacz http://stackoverflow.com/questions/26809986/exc-bad-access-on-ios-ios-8-1-with-dictionary – steventnorris
Dzięki @juanelomx !!! Ten sam błąd i hack z 'let' pomógł mi – Aznix