2016-06-15 6 views
3

Dieses Problem betrifft viele Apps und kann in Xcode 8 beta (8S128d) gefunden werden. Dies ist die erste Beta, obwohl sie nicht mit Beta 1 gekennzeichnet ist.Warum wird meine App nicht in XCode 8 beta (8S128d) laufen?

Das Problem ist mit NSUserDefaults; es funktioniert nicht. Hier ist der Code, vielleicht in application:didFinishLaunchingWithOptions:.

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setValue:@"hello world" forKey:@"TEST"]; 

[defaults synchronize]; 

NSString * oops = [[NSUserDefaults standardUserDefaults] valueForKey:@"TEST"]; 
NSLog(@"default = %@", oops); 

In XCode 7 und früheren Versionen funktioniert dieser Code wie erwartet: Der Wert der oops ist "Hallo Welt".

In XCode 8 ist der Wert oopsnil.

Das ist ziemlich wichtig!

+0

Haben Sie dies als ein Fehler an Apple gepostet? In den Entwicklerforen angemeldet? – drekka

+2

Dev-Foren funktionierten nicht, und sowieso suchen die meisten Leute zuerst stackoverflow. Aber es scheint, dass es ein dokumentiertes Problem ist, wenn auch mit einer ziemlich hässlichen Problemumgehung. Ich werde die Antwort posten. – Richard

Antwort

8

Konnten Sie die Antwort: https://forums.developer.apple.com/message/143155#143155

Wenn Sie XCode 7 oder früher verwendet haben, müssen Sie den Mac neu zu starten, bevor Sie das iOS-10-Simulator ausgeführt wird.

Aus der Release Notes:

WWDC Seed: Simulatoren mehr iOS Lauf kann NSUserDefaults verursachen nicht

arbeitet Ausführen einen iOS 8 oder 9 Simulator gefolgt von einem iOS-10-Simulator wird NSUserDefaults verursachen zu stoppen im Simulator arbeiten. Dies kann behoben werden, indem der Host-Mac neu gestartet wird.

+1

Interessanterweise kann ich diese Notiz nicht in den veröffentlichten Versionshinweisen für iOS 10 oder XCode 8 finden, wo ich zuerst nach diesem Problem gesucht habe. Der Neustart löst dieses Problem jedoch. – Richard

+0

Dies ist in XCode 8 Beta 2 behoben, aber ich habe es noch nicht versucht. – Richard

Verwandte Themen