import SwiftUI
struct User : Codable {
var firstName:String
var lastName:String
}
struct ContentView: View {
@State var user = User(firstName: "Taylor", lastName: "Swift")
@State var tapCount = 0
var body: some View {
Button("Save data") {
tapCount += 1
print("tapCount:\(tapCount)")
UserDefaults.standard.set(tapCount, forKey: "Tap")
let encoder = JSONEncoder()
if let data = try? encoder.encode(user) {
UserDefaults.standard.set(data, forKey: "UserData")
}
}.padding()
Button("Get Data") {
let lastTapCount = UserDefaults.standard.integer(forKey: "Tap")
print("lastTapCount:\(lastTapCount)")
guard let data = UserDefaults.standard.object(forKey: "UserData") as? Data else {
print("Error 1")
return
}
let decoder = JSONDecoder()
guard let userData = try? decoder.decode(User.self, from: data) else {
print("Error 2")
return
}
print(userData)
}
}
}
From: SwiftUI 知识碎片