【发布时间】:2021-03-12 12:34:25
【问题描述】:
我有一个框架,它生成一次设备 UUID 并使用 UserDefaults 保存它。该应用程序可以访问 UserDefaults 并且一切都按预期工作。但是,在某些情况下,框架不会访问 UserDefaults。 我在 iPhone 8 上使用 synchronize() 方法解决了这个问题:
func getDeviceID() -> String {
if let device = UserDefaults.standard.object(forKey: "DeviceID") as? String {
return device
} else {
let device = UUID().uuidString
UserDefaults.standard.set(device, forKey: "DeviceID")
UserDefaults.standard.synchronize() // this line helped with an iPhone 8
return device
}
}
但是,在较旧的第一代 iPhone SE 上,问题又出现了。 首先,为什么会发生这种情况,为什么 synchronize() 方法似乎有助于更新设备? (两部手机都运行 iOS 13) 从框架内访问 UserDefaults 时是否有任何已知限制?
【问题讨论】:
标签: ios swift xcode userdefaults