ios-存储数据的方式浅析

来源:互联网 发布:法属圭亚那算法国嘛 编辑:程序博客网 时间:2024/06/15 13:37

在ios中一般存储数据有这么五种方式

1、通过Plist文件存储,只能用来存储一些NSString,NSNumber,NSArray等等,但是不能用来存储我们创建的对象。

2、通过偏好设置也就是NSUserDefaults,其实本质上也就是Plist文件存储,也是只能存储一些基本的数据。

3、NSCoding,可以通过NSKeyedArchiver归档数据,也可以通过NSKeyedUnarchiver来解档数据,可以存储任意的对象,最要对象实现了NSCoding的协议

4、Sqlite3进行存储,是纯C语言的

5、Core Data进行存储是对Sqlite3的封装是OC版本的

以及实现了-(instancetype)initWithCoder:(NSCoder *)aDecoder和-(void)encodeWithCoder:(NSCoder *)aCoder方法。

plist文件的缺点:如果你通过plist文件存储的东西多了,你想要添加东西,每次都要先把文件中的东西先拿出来,然后再添加新的东西进去,再去写入,这样会影响性能

通过NSKeyedArchiver其实也是一样的,也会先把旧数据读进来,然后你想改的改好之后再设置回去,进行覆盖。数据库在存取数据和检索数据方面的速度都非常快。

Sqlite以表为基本单位。

我们做离线缓存,也就是数据直接存储在手机上的,我们一般是用FMDB来操纵sqlite来存储的,虽然FMDB和Core Data都是做了对sqlite的封装为什么不去用Core Data? 因为虽然说用Core Data苹果自动帮我们去做了Sql语句,我们不需要写Sql语句,但是灵活性降低的,就比如说我们想要自己去写Sql语句,去提高效率,但是我们用了之后效率会降低。也就是说可能苹果会帮你自动生成很多Sql语句来帮你完成你想要的操作,但是这样效率就降低了。

原创粉丝点击