实例:
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];
翻译一下下面的官方文档:
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);