美文网首页iOS
iOS各种本地存储比较

iOS各种本地存储比较

作者: 说不出口的喵 | 来源:发表于2018-08-19 00:42 被阅读128次

1. NSUserDefaults 偏好设置

一般对于一些基本的用户设置,因为数据量很小,我们可以使用OC语言中的NSUserDefaults类来进行处理。NSUserDefaults类除了可以存储数组、字典、NSdata外,还可以直接存储OC基本类型属性。但是不能直接作用到自定义对象,如果是自定义对象需要进行归档操作,这里后面会讲到。

偏好设置是专门保存应用的配置信息的,如保存用户名、密码、字体大小、是否登陆等设置,一般不要在偏好设置保存其他数据

 是一个单例对象,在整个应用程序的生命周期中都只有一个实例

2. plist文件

 在项目中创建的好处是文件的可视化,我们可以很直观的看到文件的内容,同时Xcode还提供了直接操作文件的功能。便于我们对文件内容的增删改查。这种方式的缺点是项目中的plist文件一般作为固态的数据形势保存,对于经常需要改动的数据就不好操作了。

 plist,自定义的对象不能直接存入。plist主要保存的数据类型为NSString、NSNumber、NSData、NSArray、NSDictionary。

3.解归档

      之前说了,不管是NSUserDefaults 或者是 plist 都不能对自定义的对象进行存储,OC提供了解归档恰好解决这个问题。 解归档针对的是一个对象,假设我们现在有一个TestModel的类,需要进行归档和接档 但是缺点:归档的形式来保存数据,只能一次性归档保存以及一次性解压。所以只能针对小量数据,而且对数据操作比较笨拙,即如果想改动数据的某一小部分,还是需要解压整个数据或者归档整个数据。

归档这种保存方式缺点就是没有属性列表(NSuserDefault)速度快,因为它每次都要把文件保存到闪存中,优点是可以创建自己想要的数据模型,然后统一以模型方式存储,比属性列表要过分依赖Key要省心。

4 手动存放沙盒

 沙盒中只能保存OC中的基本数据,自定义的对象不能直接存入。

  Documents这个目录,本地存储的东西都放这里。

沙盒目录文件分析

Documents:保存用户产生的数据,iTunes同步设备的时候会备份该目录。用户产生的数据就是指用户在使用当前app的时候保存的一些数据,比如保存app中的图片、保存下载的文件等。

Library:这个目录下有2个文件夹,一个是Caches、一个是Preferences,Caches主要保存缓存数据,比如SDWebImage把缓存的图片就存放到该目录下。当程序退出后,改目录保存的文件一直存在。

Preferences在Xcode6之前保存的是偏好设置,比如NSUserDefaults保存的文件。但是Xcode6以上就保存到/Users/用户名/Library/ Developer/CoreSimulator/Devices/模拟器UDID/data/Library/Preferences/文件夹下。

tmp:保存程序中的临时数据,当程序退出后系统会自动删除tmp中所有的文件。

相关文章

  • iOS各种本地存储比较

    1.NSUserDefaults 偏好设置 一般对于一些基本的用户设置,因为数据量很小,我们可以使用OC语言中的N...

  • iOS 本地存储, 无需再写SQL语句 <封装 FMDB&

    iOS,本地存储 SwpFMDB iOS本地持久化储存方式 iOS本地持久化储存方式,常用几种方式: NSUser...

  • iOS 崩溃日志收集和上传服务器

    iOS 崩溃日志本地存储并上传 感谢iOS战士原创

  • OC

    1.iOS本地存储Sql语句。

  • iOS 本地化存储

    简介 iOS中常常会用到本地化存储,下面就总结一下常用的几种本地化存储方式 1. iOS数据存储的几种方式 Pre...

  • iOS 安全性参考点

    iOS本地数据存储安全 本地存储的方式主要有:Userdefault, 沙盒文件(包括DB文件),Archiev...

  • iOS本地存储

    参考:https://www.jianshu.com/p/cd475693e2f8

  • iOS数据持久化

    iOS本地数据存储总共就集中方案: 属性列表(plist存储) 系统存储(NSUserDefaults) 归档序列...

  • iOS开发之SQLite总结

    iOS本地持久化存储方式 NSUserDefaults:存储配置信息,适用小规模数据。NSUserDefaults...

  • iOS本地存储-数据库(FMDB)

    原文:# iOS本地存储-数据库(FMDB) iOS中原声的SQLite API在进行数据存储的时候,需要使用C语...

网友评论

    本文标题:iOS各种本地存储比较

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