NSUserDefaults详细解释

NSUserDefaults是一个

它的方便之处在于不用申明太多的变量来存储不同的数据,一个NSUserDefaults就搞定了。

它是应用程序域的,能让我们进行更加方便的使用!使用真心的方便啊!


NSUserDefaults是什么呢?


NSUserDefaults类提供了与默认数据库(可以看成是一种特殊的数据库)相交互的编程接口。


 

做一个比喻:如果将默认数据库比喻为SQL Server数据库,那么NSUserDefaults就相当于SQL语句。

就像我们通过SQL语句可以对SQL Server数据库进行增删改查操作一样。我们可以通过NSUserDefaults对默认系统操作。

 


那就先来讨论一下它的特点吧:


默认数据库,拥有应用程序域中,所以,我们可以在程序的任何地方调用该“默认系统”中的数据。


默认数据库,主要存储应用程序中需要的一些偏好设置值。所以可以推断,存储的容量不会很大。


在程序运行的时候,NSUserDefaults创建和修改的数据,首先存储在内存中,并自动定时进行存储到默认数据库中。


NSUserDefaults对每一种数据都有响应的存取方法。如果要存储的数据,没有响应的方法,那么必须将要存储的数据归档(转化成响应的数据类型),然后存储。

比如:你想保存其他类型,如UIImage,你应该进行归档(即archive),或者将它转换为NSUserDefaults 支持的存储类型。


NSUserDefaults定义了很多方法来对默认数据库进行操作。

以下列举了一些常用的:


+ (NSUserDefaults *)standardUserDefaults


创建一个NSUserDefaults实例。后,如果 默认数据库 没有建立,那么,默认数据库将被按照以下顺序被建立。

NSArgumentDomain(应用程序域,应用范围在该应用程序中)

NSGlobalDomain(全局域,所有应用程序都将公用该域)

NSRegistrationDomain(临时域,为了确保创建成功)

(当然,取值的时候,也应该是这样的顺序吧,这样才能保证不同应用程序中的数据不被冲突)

————————————————————————————————————————————

+ (void)resetStandardUserDefaults

将内存中进行的修改,同步到默认数据库中。


————————————————————————————————————————————

- (id)init

初始化一个默认的NSUserDefaults


————————————————————————————————————————————

- (id)initWithUser:(NSString *)username

初始化一个特定用户的NSUserDefaults,如果该用户不存在,则返回nil

————————————————————————————————————————————


相应的Get方法(就不用多解释了)


  • – arrayForKey:
  • – boolForKey:
  • – dataForKey:
  • – dictionaryForKey:
  • – floatForKey:
  • – integerForKey:
  • – objectForKey:
  • – stringArrayForKey:
  • – stringForKey:
  • – doubleForKey:
  • – URLForKey:

————————————————————————————————————————————


响应的Setting方法:

  • – setBool:forKey:
  • – setFloat:forKey:
  • – setInteger:forKey:
  • – setObject:forKey:
  • – setDouble:forKey:
  • – setURL:forKey:

————————————————————————————————————————————


- (void)removeObjectForKey:(NString *)defaultName

删除响应的项


很多方法,可以参见帮助文档。不在赘述了。

只要写一下我对该类的理解。并对我了解的方法一个备份

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值