2014-07-09 8 views
6

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?

+3

Zadeklaruj jako var nie pozwól. Niech jest stała, gdy zadeklarujesz, że nie możesz jej zmienić. – mohacs

+0

Urządzenie lub symulator? Nie mogę odtworzyć problemu na symulatorze iOS 8. –

+3

@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. –

Odpowiedz

0

Otrzymałem ten sam błąd, gdy po raz pierwszy zaktualizowałem do wersji beta 3, ale rozwiązałem go, czyszcząc mój projekt.

Try „Produkt - Clean”

pracował dla mnie, choć nie wiem, co było prawdziwym problemem.

+0

to jest błąd w symulatorze ios8. Działa poprawnie na fizycznych urządzeniach ios8. Zobacz http://stackoverflow.com/questions/24985825/nsuserdefaults-not-cleared-after-app-uninstallation/25086816#25086816 – anders