2016-06-15 18 views
3

これは多くのアプリケーションに影響する問題で、Xcode 8 beta(8S128d)にあります。これはベータ1とラベル付けされていませんが、最初のベータです。私のアプリがXcode 8 beta(8S128d)で動作しない理由

問題はNSUserDefaultsにあります。それは動作しません。コードは、application:didFinishLaunchingWithOptions:に置いてください。 XCodeの7では

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

[defaults synchronize]; 

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

と予想されるように以前、このコードは動作します:oopsの値は、 "Hello World" のです。

XCode 8では、oopsの値はnilです。

かなりメジャーです!

+0

これはAppleにバグとして投稿しましたか?開発者フォーラムにログインしましたか? – drekka

+2

Devフォーラムは機能しませんでしたが、とにかくほとんどの人がstackoverflowを最初に検索します。しかし、それは文書化された問題のように見えるが、かなり醜い回避策がある。私は答えを投稿します。 – Richard

答えて

8

は答えが見つかりました:https://forums.developer.apple.com/message/143155#143155

あなたはXCodeの7またはそれ以前のバージョンを使用している場合、あなたはiOSの10シミュレータを実行する前のMacを再起動する必要があります。リリースノートから

WWDCシード:複数のiOSシミュレータ を実行すると、NSUserDefaultsはNSUserDefaultsの原因となりますiOSの10シミュレータが続くのiOS 8または9シミュレータ を実行

を動作しない可能性がありますシミュレータで作業中の を停止してください。これは、 ホストMacを再起動することで回避できます。

+1

興味深いことに、私はこの問題を最初に見つけたiOS 10またはXCode 8の公開リリースノートでこのメモを見つけることができません。ただし、再起動するとこの問題は解決します。 – Richard

+0

これはXCode 8 beta 2で修正されていますが、まだ試していません。 – Richard

関連する問題