NSUserDefaults nie wydaje się działać dla mnie w iOS8. Kiedy uruchomić prosty kod ulega awarii z tego błędu, wskazując na zgodne z setDouble
rozmowy:NSUserDefaults standardUserDefaults nie działa w iOS8
gwintu 1: EXC_BAD_ACCESS (kod = 1, address = 0xffffffffc)
kodu:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
let defs = NSUserDefaults.standardUserDefaults()
defs.setDouble(2.5, forKey: "foo")
return true
}
Co robię źle?
Zadeklaruj jako var nie pozwól. Niech jest stała, gdy zadeklarujesz, że nie możesz jej zmienić. – mohacs
Urządzenie lub symulator? Nie mogę odtworzyć problemu na symulatorze iOS 8. –
@mohacs: 'let defs = ...' nie powinno stanowić problemu. 'defs' to * typ referencyjny * i nie jest modyfikowany przez wywołanie metody na instancji. Zobacz "Klasy są typami odniesienia" w książce Swift. –