面试题答案
一键面试- 步骤描述:
- 数据存储:使用
UserDefaults
来保存用户输入的文本。UserDefaults
是一个简单的持久化存储机制,适用于存储少量数据,如用户设置、简短文本等。 - 监听文本变化:在用户输入文本时,实时监听文本框中文字的变化,并将其保存到
UserDefaults
中。 - 读取数据:在应用启动时,从
UserDefaults
中读取上次保存的文本,并显示在文本框中。
- 数据存储:使用
- 关键代码示例:
import SwiftUI
class UserData: ObservableObject {
@Published var inputText: String = "" {
didSet {
UserDefaults.standard.set(inputText, forKey: "inputTextKey")
}
}
init() {
if let savedText = UserDefaults.standard.string(forKey: "inputTextKey") {
inputText = savedText
}
}
}
struct ContentView: View {
@StateObject var userData = UserData()
var body: some View {
VStack {
TextField("输入文字", text: $userData.inputText)
.padding()
}
}
}
在上述代码中:
UserData
类继承自ObservableObject
,用于管理输入文本状态。@Published
属性包装器使得inputText
的变化能被视图监听。didSet
观察者在inputText
值改变时,将其保存到UserDefaults
中。构造函数init
从UserDefaults
中读取上次保存的文本并初始化inputText
。ContentView
视图使用@StateObject
来创建和管理UserData
实例,并将inputText
绑定到TextField
,实现文本的输入和显示功能。