UserDefaults.standard 中的两种方法

Two methods from UserDefaults.standard

大家通过UserDefaults告诉我class,方法:1)

open func setValue(_ value: Any?, forKey key: String)

和 2)

open func set(_ value: Any?, forKey defaultName: String) 

一模一样?只是一个作为 NSObject 的扩展添加,另一个在 UserDefaults 本身中,它继承自 NSObject?

来自 NSObject(不能用于 saving/reading)

open func setValue(_ value: Any?, forKey key: String)

来自默认值(您可以将其用于 saving/reading)

open func set(_ value: Any?, forKey defaultName: String)

从菜单中 select 一个后,在函数名称中输入 click 然后单击 Jump tp Definition 您将被定向到它的 class

NSObject上的那个好像是KVC(key-value coding)方法,和NSUserDefaults没有任何关系。所以你在使用 NSUserDefaults

时需要第二个

func setValue(_ value: Any?, forKey key: String)是针对Key-Value Coding的,由任意NSObject.

实现

func set(_ value: Any?, forKey defaultName: String) 特定于 UserDefaults,用于在默认数据库中存储值。