swift - 删除应用程序时更改 UserDefaults bool 值

标签 swift

我有一个 UserDefaults bool 值,它告诉我何时必须在第一次安装该应用程序时展示我的演练。当我安装它时,键“firstAccessToApp”的 bool 值从 true 变为为 false,但如果我从我的设备中删除应用程序并重新安装它,我的演练不会出现,因为 bool 值仍然是 false。当我从设备中删除我的应用程序时如何更改值?这是我的代码:

if !defaults.bool(forKey: "firstAccessToApp") {
        present(Walkthrough(), animated: true, completion: nil)
        UserDefaults.standard.set(true, forKey: "firstAccessToApp")
        UserDefaults.standard.synchronize()
    }

最佳答案

当您安装应用程序时,UserDefaults 中不存在该 key ,如果您尝试访问它,它将返回默认值,即 false。要在首次安装和打开应用程序时将其设置为 true,您可以将此代码添加到 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool 方法:

let defaults = UserDefaults.standard

if (!defaults.dictionaryRepresentation().keys.contains("firstAccessToApp")) {
    defaults.set(true, forKey: "firstAccessToApp")
    defaults.synchronize()
}

关于swift - 删除应用程序时更改 UserDefaults bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40869811/

相关文章:

cocoa - Swift 中的类不符合 'CBPeripheralManagerDelegate'

ios - 如何通过非全屏 UITableView 的 UIEdgeInsets : 屏幕上的点传递点击手势

ios - CIImage 将调整后的图像尺寸加倍

ios - Swift 3 Xcode 8 中的 FileManager 和 urlsForDirectory 错误

iOS 画外音 - 检测转子是否启用了垂直导航?

swift - AWS S3 签名的 UploadPart header 的 Content-MD5

swift - 是否可以在 Swift 中为结构或类中的成员使用可选值?

ios - Xcode Swift 游戏(碰撞问题)

ios - 如何避免三种数据库操作中的厄运金字塔?

ios - UITextField 不响应点击