2014-07-09 17 views
6

NSUserDefaults non sembra funzionare per me in iOS8. Quando eseguo un semplice codice si blocca con questo errore indicando la linea con il setDouble chiamata:NSUserDefaults standardUserDefaults non funziona in iOS8

filettatura 1: EXC_BAD_ACCESS (codice = 1, indirizzo = 0xffffffffc)

il codice:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool { 
    let defs = NSUserDefaults.standardUserDefaults() 
    defs.setDouble(2.5, forKey: "foo") 

    return true 
} 

Cosa sto sbagliando?

+3

Dichiarare come var non lasciare. Let è costante, una volta che dichiari di non poterlo cambiare. – mohacs

+0

Dispositivo o simulatore? Non riesco a riprodurre il problema su iOS 8 Simulator. –

+3

@mohacs: 'let defs = ...' non dovrebbe essere un problema. 'defs' è un * tipo di riferimento * e non modificato chiamando un metodo sull'istanza. Vedi "Le classi sono tipi di riferimento" nel libro Swift. –

risposta

0

Stavo ricevendo lo stesso errore quando ho eseguito l'upgrade alla versione beta 3, ma l'ho risolto pulendo il mio progetto.

Try 'del prodotto - Clean'

Ha lavorato per me però alcuna idea di ciò che il vero problema era.

+0

questo è un bug nel simulatore ios8. Funziona correttamente su dispositivi ios8 fisici. Vedi http://stackoverflow.com/questions/24985825/nsuserdefaults-not-cleared-after-app-uninstallation/25086816#25086816 – anders

Problemi correlati