2011-10-20 4 views
0

はどういうわけか、下記のコードを削除しているようだ私の~/Library/Preferences/NAME.PRODUCT.plistNSUserDefaults setValue:私のplistを削除します。何が起こっていますか?

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setValue:NO forKey:@"ViewFirstShown"]; 
    [defaults synchronize]; 

私はこれらの行が呼び出される前に、plistファイルが存在することを確認することができます。しかしplistファイルは、上記のコードを実行した直後に消えます。

私はsynchroniseがすぐにdiskに値を書き込むと考えました。私はしばらく待ってみましたが、plistは再出現しません。

何か不足していますか?

ありがとうございます。

答えて

1

あなたの質問に本当に答えてくれる情報はまだありません。

上記のコードが実行された時点で、 "ViewFirstShown"キーが環境設定plistの唯一のキーですか?もしそうなら、-setValue:forKey:コールは、prefs内の最後のキーを削除しているので、プリファレンスのplistが削除されます。

もう1つ注目すべきことは、-[NSUserDefaults setValue:forKey:]を使用していて、その値がidであることです。 NO0Lであり、それは実質的にnilです。ここの値は削除されています。おそらく-[NSUserDefaults setBool:forKey:]を代わりに使用したいと考えています。

+0

ありがとうございました!それは本当に起こったことです。 'ViewFirstShown'はplistの唯一のキーです。私はそれを 'setBool'に変更し、すべてが機能しました! – AReality

関連する問題