实例:
1、设置值的方法:
2、获取指的方法(通过上面的方法设置值之后,我们可以通过下面的方法来获取值)
翻译一下下面的官方文档:
1、
同步使共享用户的默认对象改变和释放它在内存中。
子类调用standardUserDefault 创建了一个新的共享用户默认(defaults)对象和标准的查找列表。
2、
返回的就是一个defaults对象初始化,为当前的用户账号。
讨论:这个方法没有设置任何的值在查找的列表中,只是吊用它如果你分配给你的NSUserDefaults对象替换共享的那一个。
如果你将参数设置为nil,系统使用默认的查找列表standardUserDefaults这个类方法使用的。(也就是相当于这个类方法)
返回值是:这个初始化NSUserDefaults对象的参数和动态注册已经建立
讨论:这个方法 是用来查找的场景如下:
1)、当我们开发app套的时候,去共享偏向设置或者其他的数据通过app之间。(多个app之间的偏向数据和数据的共享)
2)、当我们开发一个app扩展的部分的时候,去共享偏向设置或者其他的数据在扩展和它的包括的app。(扩展部分数据的共享)
3、2增加或者移除套名字
4、增加指定的字典内容到动态的注册中。
讨论:如果没有动态注册,一个将被创建通过指定的指点和NSRegistrationDomain(动态注册)江北加到查找列表的末尾。
动态注册的内容没有被写到磁盘上,你需要调用这个方法当你每一个启动你的应用的时候,
你能够放一个plist文件到你的应用的资源目录下和调用registerDefaults:这个方法和你想要通过这个文件读取的内容。
5、通过相应的key获取相应的内容的方法。
6、通过相应的key设置相应的内容的方法
7、删除偏向设置中的方法
8、持久化动态内容
8.1同步方法,就是是偏向设置的执行周期马上执行。
8.3返回指定的键值对在指定的持久域内。
8.4删除
8.5设置值
9返回一个bool值 调用判断这个指定的key是否被一个管理员管理。
10.返回的是一个联合的键值对咋动态的查找列表中
11、维护挥发性域
12、表示通知的信息量(默认的信号)
13、下面的这些常量是用来指定不同的用户默认域
1、设置值的方法:
NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
NSString *countName = self.inputCount.text;
[defaults setBool:_rememberPassword.on forKey:@"rememberPwd"];
[defaults synchronize];
2、获取指的方法(通过上面的方法设置值之后,我们可以通过下面的方法来获取值)
NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
self.inputCount.text = [defaults objectForKey:@"countName"];
[defaults synchronize];
注意:UserDefaults设置数据时,不是立即写入,而是根据时间戳定时地把缓存中的数据写入本地磁盘。所以调用了set方法之后数据有可能还没有写入磁盘应用程序就终止了。出现以上问题,可以通过调用synchornize方法强制写入 ——> [defaultssynchornize];
翻译一下下面的官方文档:
0、+standardUserDefaults
返回的是一个共享的defaults独享
1、
同步使共享用户的默认对象改变和释放它在内存中。
+ (void)resetStandardUserDefaults
A subsequent invocation of standardUserDefaults creates a new shared user defaults object with the standard search list.
子类调用standardUserDefault 创建了一个新的共享用户默认(defaults)对象和标准的查找列表。
2、
返回的就是一个defaults对象初始化,为当前的用户账号。
- (instancetype)init
返回值是:这个初始化NSUserDefaults对象的参数和动态注册已经建立
讨论:这个方法没有设置任何的值在查找的列表中,只是吊用它如果你分配给你的NSUserDefaults对象替换共享的那一个。
3、返回一个NSUserDefaults对象初始化通过指定的app组。
- (instancetype)initWithSuiteName:(NSString *)suitename
参数: suitename app的名字
如果你将参数设置为nil,系统使用默认的查找列表standardUserDefaults这个类方法使用的。(也就是相当于这个类方法)
返回值是:这个初始化NSUserDefaults对象的参数和动态注册已经建立
讨论:这个方法 是用来查找的场景如下:
1)、当我们开发app套的时候,去共享偏向设置或者其他的数据通过app之间。(多个app之间的偏向数据和数据的共享)
2)、当我们开发一个app扩展的部分的时候,去共享偏向设置或者其他的数据在扩展和它的包括的app。(扩展部分数据的共享)
3、2增加或者移除套名字
- (void)addSuiteNamed:(NSString *)suiteName;
- (void)removeSuiteNamed:(NSString *)suiteName;
4、增加指定的字典内容到动态的注册中。
- (void)registerDefaults:(NSDictionary *)dictionary
参数:dictonary就是设置的key和值想用来注册的。
讨论:如果没有动态注册,一个将被创建通过指定的指点和NSRegistrationDomain(动态注册)江北加到查找列表的末尾。
动态注册的内容没有被写到磁盘上,你需要调用这个方法当你每一个启动你的应用的时候,
你能够放一个plist文件到你的应用的资源目录下和调用registerDefaults:这个方法和你想要通过这个文件读取的内容。
5、通过相应的key获取相应的内容的方法。
- (NSArray *)arrayForKey:(NSString *)defaultName;
- (BOOL)boolForKey:(NSString *)defaultName;
- (NSData *)dataForKey:(NSString *)defaultName;
- (NSDictionary *)dictionaryForKey:(NSString *)defaultName;
- (float)floatForKey:(NSString *)defaultName;
- (NSInteger)integerForKey:(NSString *)defaultName;
- (id)objectForKey:(NSString *)defaultName;
- (NSArray *)stringArrayForKey:(NSString *)defaultName;
- (NSString *)stringForKey:(NSString *)defaultName;
- (double)doubleForKey:(NSString *)defaultName;
- (NSURL *)URLForKey:(NSString *)defaultName NS_AVAILABLE(10_6, 4_0);
6、通过相应的key设置相应的内容的方法
- (void)setBool:(BOOL)value forKey:(NSString *)defaultName;
- (void)setFloat:(float)value forKey:(NSString *)defaultName;
- (void)setInteger:(NSInteger)value forKey:(NSString *)defaultName;
- (void)setObject:(id)value forKey:(NSString *)defaultName;
- (void)setDouble:(double)value forKey:(NSString *)defaultName;
- (void)setURL:(NSURL *)url forKey:(NSString *)defaultName NS_AVAILABLE(10_6, 4_0);
7、删除偏向设置中的方法
- (void)removeObjectForKey:(NSString *)defaultName;
8、持久化动态内容
8.1同步方法,就是是偏向设置的执行周期马上执行。
- (BOOL)synchronize;
8.2返回指定的数组在指定的持久域内。
- (NSArray *)persistentDomainNames NS_DEPRECATED(10_0, 10_9, 2_0, 7_0);
8.3返回指定的键值对在指定的持久域内。
- (NSDictionary *)persistentDomainForName:(NSString *)domainName;
8.4删除
- (void)removeVolatileDomainForName:(NSString *)domainName;
8.5设置值
- (void)setPersistentDomain:(NSDictionary *)domain forName:(NSString *)domainName;
9返回一个bool值 调用判断这个指定的key是否被一个管理员管理。
- (BOOL)objectIsForcedForKey:(NSString *)key;
- (BOOL)objectIsForcedForKey:(NSString *)key inDomain:(NSString *)domain;
10.返回的是一个联合的键值对咋动态的查找列表中
- (NSDictionary *)dictionaryRepresentation;
11、维护挥发性域
- (void)removePersistentDomainForName:(NSString *)domainName; //删除
- (NSDictionary *)volatileDomainForName:(NSString *)domainName;//获取
- (void)setVolatileDomain:(NSDictionary *)domain forName:(NSString *)domainName;//设置
@property (readonly, copy) NSArray *volatileDomainNames;//属性
12、表示通知的信息量(默认的信号)
NSUserDefaultsDidChangeNotification
13、下面的这些常量是用来指定不同的用户默认域
extern NSString *NSGlobalDomain; //所有的应用都是可见的。
extern NSString *NSArgumentDomain; //这个域包括默认的解析从应用的参数,这些是一个或者多个对从默认的值中包括应用的命令行(命令行也是可见的)
extern NSString *NSRegistrationDomain;//短暂的
还有其他的表示时间等等的一些常量:
FOUNDATION_EXPORT NSString * const NSWeekDayNameArray NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSShortWeekDayNameArray NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSMonthNameArray NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSShortMonthNameArray NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSTimeFormatString NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSDateFormatString NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSTimeDateFormatString NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSShortTimeDateFormatString NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSCurrencySymbol NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSDecimalSeparator NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSThousandsSeparator NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSDecimalDigits NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSAMPMDesignation NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSHourNameDesignations NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSYearMonthWeekDesignations NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSEarlierTimeDesignations NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSLaterTimeDesignations NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSThisDayDesignations NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSNextDayDesignations NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSNextNextDayDesignations NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSPriorDayDesignations NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSDateTimeOrdering NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSInternationalCurrencyString NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSShortDateFormatString NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSPositiveCurrencyFormatString NS_DEPRECATED(10_0, 10_5, NA, NA);
FOUNDATION_EXPORT NSString * const NSNegativeCurrencyFormatString NS_DEPRECATED(10_0, 10_5, NA, NA);