2016-12-07 58 views
3

我的文本字段沒有保存。我的代碼列在下面。由於uitextfield in swift 3 not saving

class ViewController: UIViewController,UITextFieldDelegate { 
@IBOutlet weak var textext: UITextField! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
} 
@IBAction func savesavesave(_ sender: Any) { 
    let myText = textext.text 
    UserDefaults.standard.set(myText, forKey: "myKey") 

} 
+0

http://stackoverflow.com/a/34803102/2303865 –

回答

0

如果工作 我從我的記憶寫同步,其方法和測試用戶的默認值:

UserDefaults.standard.set(myText, forKey: "myKey") 

UserDefaults.standard.synchronize() 

編輯apple documentation

//注我們不會與文件系統或其他任何東西同步;當應用退出時,會發生這種情況 。有時候顯式同步可能是必要的, 但通常不是。不必同步也可能是一個性能問題。

根據蘋果的文檔我瞭解(你也許不這麼認爲),如果你想獲得運行時的價值,而不是將其保存在您的變量 - 你應該同步手動

再次編輯 謝謝到@LeoDabus我明白,也許它在運行時也可用。所以不要數我的答案

+2

沒有必要強迫同步 –

+0

我相信這是最好的做法,以迫使它,在所有的例子和教程這就像.. 。除非有什麼改變,我不知道... – Yitzchak

+0

告訴我一個來自蘋果的地方,他們這樣做。順便說一句,我沒有投票它 –

0

確保您的文本字段不是第一響應者。例如,您可以保存前調用下面的代碼:

@IBAction func savesavesave(_ sender: Any) { 
    textext.resignFirstResponder() 
    let myText = textext.text 
    UserDefaults.standard.set(myText, forKey: "myKey") 
} 
+0

我怎樣才能得到文本保存?當我改變視圖控制器時,所有的數據都被擦除。 –

0

你應該試試這個保存文本框到UserDefaults:

let myText = TextFiled1.text 
UserDefaults.standard.set(myText, forKey: "myKey") 

如果你想獲得該文本框值,則這樣寫:

let value = UserDefaults.standard.string(forKey: "myKey") 
print(value!)