swift - 如何使用 UserDefaults SwiftUI?

标签 swift swiftui userdefaults

我正在尝试创建一个文本字段,其中的文本变为var用户默认值,它将显示所有时间。

我尝试使其等于我在该部分中设置的变量。 但我真的不知道自己在做什么。

@State private var Name = UserDefaults.standard.string(forKey: "name")

Section{
  TextField("Name", text: $Name)
  UserDefaults.standard.set($Name, forKey: "name")
}

最佳答案

结构默认值{

static let (nameKey, addressKey) = ("name", "address")
static let userSessionKey = "com.save.usersession"
private static let userDefault = UserDefaults.standard

/**
   - Description - It's using for the passing and fetching
                user values from the UserDefaults.
 */
struct UserDetails {
    let name: String
    let address: String

    init(_ json: [String: String]) {
        self.name = json[nameKey] ?? ""
        self.address = json[addressKey] ?? ""
    }
}

/**
 - Description - Saving user details
 - Inputs - name `String` & address `String`
 */
static func save(_ name: String, address: String){
    userDefault.set([nameKey: name, addressKey: address], 
                    forKey: userSessionKey)
}

/**
 - Description - Fetching Values via Model `UserDetails` you can use it based on your uses.
 - Output - `UserDetails` model
 */
static func getNameAndAddress()-> UserDetails {
    return UserDetails((userDefault.value(forKey: userSessionKey) as? [String: String]) ?? [:])
}

/**
    - Description - Clearing user details for the user key `com.save.usersession`
 */
static func clearUserData(){
    userDefault.removeObject(forKey: userSessionKey)
}

}

关于swift - 如何使用 UserDefaults SwiftUI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59139561/

相关文章:

macos - SwiftUI MagnificationGesture 在 Mac 上无法正常工作

ios - Firebase iOS Swift 日期和时间

swift - 如何在SwiftUI中显示来自URL的图像

swiftui - 当包含文本字段的工作表出现时,如何使文本字段成为焦点

ios - 如何解码对象数组并从用户默认值中检索它?

ios - UserDefaults 在框架中使用时不保存

ios - 如何将 2 个 detailTextLabels 添加到 Swift 中的单元格?

ios - 如何检查 swift 打开 URL 的能力?

ios - 如何在 Swift 中对两种类型进行协议(protocol)扩展约束