UserDefaults.standard不保存swift3 xcode 8
大家好,我正在尝试构建一个简单的单视图程序来调用和导航语音菜单,我无法在关闭应用程序之间正确保存用户默认值。我还遇到了在UITextField中显示文本的问题,如果在启动时保存,我希望它能够显示,以下是变量的说明: UserInput-员工ID的文本字段(需要保存的内容) 开关-如果保存为1,则保存数据,如果为0,则不保存数据 Submit-Submit按钮,用于保存数据并调用 这是我的第一个iPhone应用程序,任何帮助都将不胜感激UserDefaults.standard不保存swift3 xcode 8,swift3,xcode8,Swift3,Xcode8,大家好,我正在尝试构建一个简单的单视图程序来调用和导航语音菜单,我无法在关闭应用程序之间正确保存用户默认值。我还遇到了在UITextField中显示文本的问题,如果在启动时保存,我希望它能够显示,以下是变量的说明: UserInput-员工ID的文本字段(需要保存的内容) 开关-如果保存为1,则保存数据,如果为0,则不保存数据 Submit-Submit按钮,用于保存数据并调用 这是我的第一个iPhone应用程序,任何帮助都将不胜感激 在此处输入代码 import UIKit class
在此处输入代码
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var UserInput: UITextField!
var SaveIt = true
var employID = ""
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.UserInput.delegate = self;
UserInput.keyboardType = .numberPad
if let current_eid = UserDefaults.standard.string(forKey: "emp_ID") {
UserInput.text = current_eid
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func loadDefaults() {
let defaults = UserDefaults.standard
if let UserInput = defaults.string(forKey: "emp_ID") {
print(UserInput)
} else {
// focus on the text field if it's empty
UserInput.becomeFirstResponder() }
UserInput.text = defaults.object(forKey: "emp_ID") as! String?
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
@IBAction func Switch(_ sender: UISwitch) {
if (sender.isOn == true) {
SaveIt = true
}
else{
SaveIt = false
}
}
@IBAction func Submit(_ sender: Any) {
if (SaveIt) {
let defaults = UserDefaults.standard
defaults.set(UserInput.text, forKey: "emp_ID")
defaults.synchronize()
}
let phone = "telprompt://1888247889pppp" + UserInput.text! + "p1p1p1p1";
let url = URL(string:phone)!
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else { UIApplication.shared.openURL(url)
}
}
}我建议首先将您的键设置为一个简单的描述性字符串,以便您能够始终如一地使用。在不深入调试的情况下,我怀疑您保存的内容和检索的内容是不同的。我明白您的意思,self.UserImput位于顶部,但UserImput位于检索位置,我已经更新了代码来修复这个问题,但它似乎仍然没有存储。命名
UserImput
作为一个静态变量和一个文本字段是非常令人困惑的。更新后,我从一个比我更了解swift的同事那里得到了一些帮助,修复在上面,应用程序正在运行!