ときにユーザがログインするためにオブジェクトを削除しませんが、私のような、私のJSONサーバからトークンをダウンロードし、NSUserDefaultsに格納します。NSUserDefaultsは、私のアプリケーションへの重要
[[NSUserDefaults standardUserDefaults] setValue:token forKey:TOKEN];
ユーザがログアウトすると以降のページでは、私は、このメソッドを呼び出すと、ログイン画面に戻り:
[[NSUserDefaults standardUserDefaults] setObject:@"" forKey:TOKEN];
(とその前に、私は[[NSUserDefaults standardUserDefaults] removeObjectForKey:TOKEN]と呼ばれる;)
それDOE私はこのユーザーのデフォルトを削除しようとすると、私はいつも私に完全なトークンを表示し、空の文字列もヌル値も表示しません。
周囲を読んでいるときは、明らかに読み取り書き込みサイクルと関係がありますか?しかし、私がしばらくそれを残しても、鍵はまだ残っています。これはシミュレータの問題ですか?
原因が何であれ、どうすればこの問題を回避できますか?
あなたはアプリの読み込み方法について詳しく説明できますか?私はremoveObjectForKeyの前と後に値を記録しようとしましたが、それはうまくいきます: '' [NSUserDefaults standardUserDefaults] setValue:@ "test" forKey:@ "token"]; NSLog(@ "%@"、[[NSUserDefaults standardUserDefaults] objectForKey:@ "token"]); [[NSUserDefaults standardUserDefaults] removeObjectForKey:@ "token"]; NSLog(@ "%@"、[[NSUserDefaults standardUserDefaults] objectForKey:@ "token"]); ' –
このようにログを記録すると、直前と直後に、既存から削除されます。しかし、私は私のアプリケーションを終了し、それをリロードした後、私はそのデータにアクセスすると、文字列が再び表示されます! (そしてしばらくしてからそれを削除してもう一度それを保存しません) – Rambatino
それはビューコントローラにのみロードされるので、問題がどこにあるのかは分かりません。 – Rambatino