2017-02-01 4 views
1

私はiPhone 7を持っていますが、私も開発用に使っています。私は私のアプリケーションでは、私はNSUserDefaultsに自動ログインの目的のためのセッショントークンを格納していたことに気づいた。しかし、セッショントークンを削除しないと、セッショントークンがゼロになり、自動ログインが機能しなくなることがあります。これは他のアプリにも起こります。既に、私はすでにログインしていますが、何度かログインを求められます。私は何とかNSUserDefaultsにアプリの大半が何とか消去されていると推測しています。誰でも似たような問題がありますか? iOS8を実行するときにiPhone 7 NSUserDefaultsがnilに変わる

class func setSessionToken(_ token: String){ 
     let defaults = UserDefaults.standard 
     defaults.setValue(token, forKey: sessionTokenKey) 
     defaults.synchronize() 
    } 

class func getSessionToken()->String?{ 
     let defaults = UserDefaults.standard 
     return defaults.string(forKey: sessionTokenKey) 
    } 
+0

iOS 8では、[UserDefaults.synchronize()](https://developer.apple.com/reference/foundation/userdefaults/1414005-synchronize)を呼び出す必要はなくなりました。このメソッドは自動的に呼び出されるため定期的に自動同期を待つことができない場合(例えば、アプリケーションが終了しようとしている場合など)にのみ、このメソッドを使用してください... " –

+0

' prints.cfg 'の前に 'defaults.setValue(トークン、forKey:sessionTokenKey) '行と私のための'トークン 'を印刷する?また、 'COMMAND + SHIFT + F'を押し、検索フィールドに" forKey:sessionTokenKey "を貼り付けて、プロジェクトの他の場所で値を削除しないようにしてください。 –

答えて

0

この問題は、通常発生するかiOS10シミュレータとNSUserDefaultsに続く9シミュレータは、シミュレータで動作を停止します。

しかし、あなたのケースでは、iPhoneでも動作していない場合。 Xcode8の最新バージョンで試すことができます。

+0

Xcode 8.2.1の公式が1ヶ月以上前からリリースされている場合、なぜ誰かがXcode 8 beta 2を使用しますか? – JAL

+0

そうです、あなたは正しいです。私はこのリンクを見てきました。https://forums.developer.apple.com/message/143155#143155 – Harish

関連する問題