UserDefaults()和UserDefaults.standard之间的区别

5
在Swift 3.0中,UserDefaults()UserDefaults.standard有什么区别吗?
2个回答

12

UserDefaults - 提供一个新对象,每个对象都被分配不同的内存,并在对象作用域结束时被解除分配。

UserDefaults.standard - 通过使用类方法standard来提供单例对象,该方法接收到的对象在整个应用程序中分配单一内存。

如果您对它们的使用感兴趣,可以参考以下内容:

// Set
UserDefaults.standard.set("YOUR STRING", forKey: "key")
UserDefaults().set("YOUR STRING", forKey: "key")


// Get
UserDefaults.standard.string(forKey: "key")
UserDefaults().string(forKey: "key")

1
是的,但从实际角度来看,它们有什么不同? - Eric33187

1
let ud = UserDefault()
let uds = UserDefaults.standard
  • 两个对象将使用相同的底层plist文件来获取/设置值。
  • 使用“ud”为键设置值会使“uds”对象使用相同的值。

您可以创建和使用使用方便的“init”方法创建的“UserDefault”的实例,但Foundation文档鼓励开发人员使用可通过“standard”变量访问的单例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接