数据存储之偏向设置NSUserDefault

实例:
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);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值