美文网首页
关于NSUserDefaults的秘密

关于NSUserDefaults的秘密

作者: lucifer_1911 | 来源:发表于2018-12-04 14:08 被阅读0次

关于NSUserDefaults的秘密

   NSUserDefaults 简介

  在日常开发中经常遇到本地存储,存储的方式有很多,今天我们就来看看NSUserDefaults,NSUserDefaults是一个轻量级的本地化存储的一个类。可以用它来保存一些偏好设置,其保存路径为Library/Preferences。注意这个存储并没有加密,so。

 NSUserDefaults常用的方法

  NSUserDefaults常用的方法,使用和NSMutableDictionary的一些方法类似。如下,看不懂的请自行百度

  调用set的方法后,如果需要马上同步需要synchronize方法。注意这个方法不要太频繁调用。如果不调用synchronize,系统会每个一个时间段自动保存。

  NSUserDefaults高级用法

保存自定义对象

  NSUserDefaults只支持基本数据类型,如果需要保存自定义的对象,就需要借助NSKeyedArchiver将对象归档成NSData,然后再用[useDefault setObject: forKey:];方法保存

  2.数据共享 

app group 中的数据共享,至于怎么新建group,参考https://onevcat.com/2014/08/notification-today-widget/,基本的思路如下

  这里就能解释,同一个公司的app,装了一个之后,在装另一个,就会自动登录的功能。initWithSuiteName会在Library/Preference下新建一个以name为名字的plist文件。[NSUserDefaults standardUserDefaults]是以bundle id为名字的一个plist文件。利用这个我们可以给每一个用户新建一个偏好设置的文件,保存皮肤,字体等,不同的用户登录就会有不同的效果。

NSUserDefaults数据清除

  - (void)removePersistentDomainForName:(NSString *)domainName;清除domain下的所有信息。在这里要说一下NSUserDefaults的域,默认包含5个domain,分别是NSArgumentDomain,Application,NSGlobalDomain,Languages,NSRegistrationDomain。

NSUserDefaults注意的地方

当我们获取偏好设置的值的时候,需要注意,比如如下:[stand boolForKey:@"key1"];如果没有对应的key1则获取的值为默认值false。这种情况就有可能和有对应的key,并且对应的值为false时,区分不开,造成的逻辑错误。类似的还有[stand integerForKey:@""]等。

  对应的解决办法是:

相关文章

  • 关于NSUserDefaults的秘密

    关于NSUserDefaults的秘密 NSUserDefaults 简介 在日常开发中经常遇到本地存储,存储的...

  • 关于NSUserDefaults

    作为iOS重要的数据持久化技术之一,相信很多人都用过NSUserDefaults ,原因无他,实在太好用了,我曾见...

  • 关于NSUserDefaults

    NSUserDefaults是一个单例,在整个程序中只有一个实例对象,可以用于数据的永久保存。 他的作用一般是用来...

  • NSUserDefaults详解

    关于NSUserDefaults的一些原理 什么是NSUserDefaults对于应用来说,每个用户都有自己的独特...

  • SC开源系列 : SCMapCatch

    SCMapCatch SCMapCatch 是一个关于 NSUserDefaults , NSDictionary...

  • 关于 NSUserDefaults的使用

    前言:一般情况下我们经常会使用到小数据的存储,这是我们可以选择 NSUserDefaultsl来进行 首先要注意几...

  • 关于 NSUserDefaults setBool 的值取出后i

    关于 NSUserDefaults setBool 的值取出后if判断不了的问题 使用 [[NSUserDefa...

  • 清理所有NSUserDefaults

    NSUserDefaults *defatluts = [NSUserDefaults standardUserD...

  • NSUserDefault

    NSUserDefaults * settings = [NSUserDefaults standardUserD...

  • iOS/NSUserDefaults详解

    欢迎关注公众号: CodeReview 关于NSUserDefaults首先要看苹果官方的定义 NSUserDef...

网友评论

      本文标题:关于NSUserDefaults的秘密

      本文链接:https://www.haomeiwen.com/subject/kdvmcqtx.html