简介
它是单例的,并且是线程安全的,是以键值对的形式保存在沙盒中,最下面还是用plist文件进行保存。支持存储的数据类型是id,NSObject(自定义对象),NSString,NSNumber,NSArray,NSDictionary,NSData。
在进行自定义对象的归档时需要实现NSCoding协议。
域
在NSUserDefault中存在域的概念,包含5个部分
域名 | 含义 |
---|---|
NSArgumentDomain | 代表的是命令行参数,可以在Edit Scheme->Arguments->Arguments Passed On Launch中添加,格式是-key value。 |
Application | 应用程序域,设置的方法默认数据保存是在这里 |
NSGlobalDomain | 全局域,所有应用程序都将公用该域 |
Languages | 国际化语言版本域 |
NSRegistrationDomain | 临时域,- (void)registerDefaults:(NSDictionary*)registrationDictionary 方法被调用时数据是保存在这里。 |
在读取数据时,都会在底层的存储结构中进行一次搜索,搜索的顺序是这样:
NSArgumentDomain->Application->NSGlobalDomain->Languages->NSRegistrationDomain