Sto usando un dizionario per valutare un'espressione, quando l'espressione ha variabili e il dizionario è effettivamente usato da NSExpression, succede qualcosa e ottengo EXC_BAD_ACCESS quando provo ad aggiornare il dizionario, questo accade solo quando si esegue il debug in un iPhone6, non nel simulatore e non in un iPhone 4S.EXC_BAD_ACCESS quando si aggiorna il dizionario Swift dopo averlo usato per valutare 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")
Qualcosa di veramente strana è che se aggiungo questa linea solo dopo aver creato il dizionario, allora woks bene:
let newDic = self.dictionary
io, sto utilizzando iOS 8.1. Grazie in anticipo!
Viene self.dictionary dichiarata con let o var? –
Si ritiene che sia un bug del compilatore. Ho vissuto la stessa cosa. Vedi http://stackoverflow.com/questions/26809986/exc-bad-access-on-ios-8-1-with-dictionary – steventnorris
Grazie @juanelomx !!! Lo stesso bug e hack con 'let' mi ha aiutato – Aznix