私は非常に迅速です。そしてあなたの助けが必要です! ユーザが2回目にログインすると、アプリケーションはCoreViewという名前の次のView Controllerに直接アクセスする必要があります。それは詳細を求めるべきではありませんが、私はなぜそれが動作しているのか分かりません。そして、それはアプリが起動されるたびに詳細を求めています。以下のコードを確認してください。私はあまりにもエラーの任意の並べ替えを取得していない。アプリが強制終了またはログアウトされない限り、ユーザーは直接ログインできなくてはなりません。NSUserDefaultsのコードが動作しません
func pref_write()
{
// To write the data to NSUserDefaults
let prefs = NSUserDefaults.standardUserDefaults() // make a reference
print("OTP:\(OTP)")
// Adding values. Creating objects in prefs
prefs.setObject(OTP, forKey: "OTP")
print("check_OTP:\(check_OTP)")
prefs.setObject(U_ID, forKey: "U_ID")
print("Check_U_ID:\(check_U_ID)")
prefs.synchronize()
self.performSegueWithIdentifier("ContinueToCoreView", sender: self)
}
とのviewDidLoad機能で:
override func viewDidLoad()
{
super.viewDidLoad()
//Read the data
self.performSegueWithIdentifier("ContinueToCoreView", sender: self)
pref_write()
let prefs = NSUserDefaults.standardUserDefaults()
check_OTP = prefs.objectForKey("OTP")!
check_U_ID = prefs.objectForKey("U_ID")!
prefs.objectForKey("U_ID")
print("prefs:\(prefs)")
prefs.synchronize()
}
ありがとう! 、 USER_IDとuser_otpを取得し、基本的な資格情報を提供することにより、ログイン用のAPIを呼び出します。
あなたは、アプリケーションが実行されている間のみ状態を維持したい場合は、あなたが維持する必要はありませんアプリが殺された状態。 「UserDefaults」に状態を格納する必要はありません。 とにかく、「UserDefaults」にいくつかの状態を保存する場合は、保存された値をチェックし、その値に基づいて決定を下す必要があります。私は 'UserDefaults'に格納されている値について、あなたのコードのチェックを見ることができません。 –
まず、状態ではなくデータを保存したい。私がプリファレンスでオブジェクトを作成しているとき。それはそこに保管されるべきです。そして、もし私が何らかの形で間違っていたら、私にこれを案内してください。私はUserDefaultsにアプリが殺される瞬間まで詳細を保存したい。 – Mili
書き込みメソッドでは、正しい方法で書き込みを行っていますが、viewDidLoadでは値を読み取っているだけで、それらをチェックすることはありません。読み込む前に、おそらく意味のない書き込みメソッドを呼び出します。また、あなたは常に "ContinueToCoreView" segueを発射しても意味がありません。最初のView ControllerのviewDidLoadですか? –