Ich habe ein Objekt, erreichbar über eine statische var in einer Struktur (Abhilfe für den Mangel an Klassenvariable Unterstützung in swift jetzt), wie folgt strukturiert:EXC_BAD_ACCESS auf iOS 8.1 mit Wörterbuch
struct Constants{
static var myObj = MyObject()
}
MyObject hat eine Wörterbuch in ihm etwa so:
class MyObject{
private var params = Dictionary<String,AnyObject>()
func addParam(key:String, value:AnyObject){
params[key] = value
}
}
nun auf dem ersten Aufruf dieses Objekt für Contants.myObj.addParam("param", value:123)
alles ist gut und params hat Inhalt ["param":123]
. Beim zweiten Anruf für Contants.myObj.addParam("param", value:456)
bekomme ich eine EXC_BAD_ACCESS.
Hier ist der Kicker, dies tritt jedoch nur in iOS 8.1. Auch, wenn ich die Zeile let stupidHack = self.params
als erste Zeile meiner addParam
Methode hinzufügen, funktioniert es gut. Meine Annahme ist, dass es sich um die Veränderlichkeit von Wörterbüchern handelt. Das let kann das Wörterbuch nach der Initialisierung möglicherweise wieder veränderbar machen.
Hat jemand anderes dieses Problem schon einmal erfahren? Irgendeine Idee, wie man es repariert?
Danke!
Ich hatte das gleiche Problem mit einer Mac-App, die ich erstelle. Meine ist beim dritten Mal abgestürzt, egal was passiert ist. Du hast die stupidHack-Methode für mich arbeiten lassen. So bizarr, aber danke! –