2017-01-14 14 views
1

私はプログラミングに慣れていないので、ログインシステムが必要なアプリで作業しています。 (それほど安全ではないシステム)。私は以下のコード IOS UserDefaultをローカルに保存することはできません

@IBAction func CreateACPressed(_ sender: Any) { 
    if usernameTextField2.hasText && passswordTExtField2.hasText { 

    let newUser = accountInfo(username: usernameTextField2.text!, password: passswordTExtField2.text!) 


    var randomTestingArr : NSArray = [accountInfo]() as NSArray 

    randomTestingArr.adding(newUser) 

    let defaults = UserDefaults.standard 
    defaults.set(randomTestingArr, forKey: "ACArr") 
    defaults.synchronize() 

    let array = defaults.array(forKey: "ACArr") as? [accountInfo] ?? [accountInfo]() 

    for i in array{ 
     print("username: \(i.username) password: \(i.password)") 
    } 



    // temp retrieve 
    }else { 
     print("you havent entered anything") 
    } 

} 

を書いたが、私は私のアプリで作成したボタンを押したときに、コンソールには、私が入力したユーザー名とパスワードをプリントアウトしませんでした。

ここで問題は何ですか?

+0

カスタムオブジェクト( 'accountInfo')をユーザーのデフォルトで保存することはできません。テキストフィールドの1つにテキストが含まれていないと、コードが確実にクラッシュします。 – vadian

答えて

1

保存しようとしている方法が問題を引き起こしている可能性があります。代わりに、この

let defaults = UserDefaults.standard 
defaults.set(randomTestingArr, forKey: "ACArr") 
defaults.synchronize() 

これで置き換えます

let defaults = UserDefaults.standard 
defaults.set(usernameTextField2.text!, forKey: "UserName") 
defaults.set(passswordTExtField2.text!, forKey: "Password") 
defaults.synchronize() 

そして、私はそれが正常に動作することを確信しています。

+0

いや、私はこれを前に試してみました。しかし、構造体を含む配列を保存する方法はありませんか? – ERIK

関連する問題