2016-08-25 3 views
0

XcodeとSwiftでiOSアプリケーションを開発しています。Xcode;構造体に格納しようとすると "インスタンスメンバー '文字列'をタイプ 'VC'で使用できません

私はNSUserDefaultsでデータを保存したいと思います。

しかし、構造体にはInstance member 'firstString' cannot be used on type 'VC'Instance member 'secondString' cannot be used on type 'VC'があります。

これは私のコードです:私は間違っ

import UIKit 

class Register: UIViewController, UITextFieldDelegate { 

    @IBOutlet weak var firstString: UITextField! 
    @IBOutlet weak var secondString: UITextField! 

    struct storeLogin { 
     static let storeFirstString = (firstString.text) 
     static let storeSecondString = (secondString.text) 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

何をしているのですか?

+0

:私はNSUserDefaultsからデータを取得するには、このコードを使用してい

let loginData = NSUserDefaults.standardUserDefaults() loginData.setValue(self.username.text, forKey: "Username") loginData.setValue(self.password.text, forKey: "Password") 

:私はNSUserDefaultsでのTextFieldのコンテンツを保存するには、次のコードを使用しています。 – Dravidian

+0

だから、どうしたらいいですか?どういう意味ですか? (申し訳ありません、私はプログラミングでは新しいです。) –

+0

コードを更新しました。 –

答えて

0

の配列に追加します。あなたがクラススコープでプロパティを使用することはできません

let retrieveData = NSUserDefaults.standardUserDefaults() 

if let username = retrieveData.stringForKey("Username"){ 
print(username) 
} 
if let password = retrieveData.stringForKey("Password"){ 
print(password) 
} 
0

UITextFieldsの値をletに保存するために、プロパティの値を別のプロパティに設定する関数が必要です。なぜなら、 - プロパティはクラスの実行時にのみ初期化を開始するからですまたはランダムな順序でも実行されます。つまり、のstructのプロパティが初期化されるときには、テキストフィールドよりも前にstruct get initialisedが起きる可能性があります。このコードを、あるプロパティを初期化して別のプロパティに保存する場所に配置する必要があります。

struct storeData { 
    let saveFirstString : String? 
    let saveSecondString : String? 
    } 

そして、あなたはあなたのデータを保存するたびにちょうど私が最終的に解決策を見つけたタイプstoreData

class myclass: ...{ 

    struct storeData { 
    let saveFirstString : String? 
    let saveSecondString : String? 
    } 

    var myData = [stroeData]()//Define this variable globally 

    //Check if your textfield is updated or whenevea you want to store to NSUserDefaults 


    func loginBtn(){ 

     myData.append(storeData.init(saveFirstString: "dasda", saveSecondString: "dasda") 
     //Call this line of code whenever you want to store the values in your NSUserDefaults 
     } 
} 
+0

あなたの問題を解決したら、この回答を受け取り、アップアップしてください:) – Dravidian

+0

私は2番目のコードを使用することができません。動作しません。私はエラーだけを得ています。 2番目のコードを追加する場所は? –

+0

そのコードをどこに置くか教えて、クラスのコード全体を与えて、それらの値を構造体のプロパティに保存するときに教えてください....基本的な情報を教えてください....! – Dravidian

関連する問題