作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试加载用户通过字符串在 viewDidLoad 中输入的值。我正在使用 UserDefaults 来保存他们输入到 UITextField (userValue) 中的用户值,然后我将其保存到字符串“搜索”中。我能够在 GoButton 函数中打印出 search 的值,它工作正常,但是当我将 ViewController 加载为新的时,“search”的值等于 nil。此处的目的是保存用户之前的搜索,并在加载 ViewController 时加载到 UITextField(用作搜索框)。
代码如下:
class ViewController: UIViewController {
@IBOutlet weak var userValue: UITextField!
var search: String!
}
viewDidLoad:
override func viewDidLoad() {
if (search != nil)
{
userValue.text! = String (search)
}
}
按钮功能:
@IBAction func GoButton(_ sender: Any) {
let userSearch: String = userValue.text!
let perference = UserDefaults.standard
perference.set(userSearch, forKey: "hello")
perference.value(forKey: "hello")
let value = perference.value(forKey: "hello") as! String
search = value
print (search) // <<this works, it prints out the users search value
}
最佳答案
@VishalSharma 的想法是正确的,但代码应该看起来更像......
override func viewDidLoad() {
super.viewDidLoad()
if let search = UserDefaults.standard.string(forKey: "hello") {
userValue.text = search
}
}
或者更简单的...
userValue.text = UserDefaults.standard.string(forKey: "hello")
关于ios - 如何将用户数据存储为字符串,并在 viewDidLoad 中加载该字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52131107/
我是一名优秀的程序员,十分优秀!