iOS中的几种数据存储方式

1、NSUserDefaults:这个算是用的比较多的了,用来存储一些简单的App配置信息。能直接存储的数据有:NSNumber, 基本数据类型(int,NSInter , float , double , CGFlat......), NSString, NSData, NSArray, NSDictionary, NSURL。自定义对象也能存,但是比较麻烦,需要转换为NSData,不能直接存储。

2、归档(序列化):一般保存自定义的对象,自定义对象数组,但是只有遵守NSCoding的类才能只用归档。如果使用MJExtension可以不用写复杂的NSCoding协议,只需要一句MJCodingImplementation即可。

3、plist文件保存:主要保存的数据类型为NSString、NSNumber、NSData、NSArray、NSDictionary、NSMutableArray、NSMutableDictionary、NSMutableData

4、数据库:保存大量数据可以优先考虑用数据库。

5、CoreData:对象持久化,用来保存程序用到的对象及对象间的关联。本质还是数据库存储,将OC对象转化成数据保存在数据库中。好处就是能够合理管理内存,避免sql语句的麻烦。

6、KeyChain:用来存加密数据,这个与其他存储方式不同的是:即使删除掉app数据也不会消失,因为它存在一个/private/var/keychains/keychain-2.db的数据库文件中,这是一个系统文件,所以删除app,它不会消失。不过不适合大量数据的持久化存储。

总结:存储简单的数据,基本的数据可以使用NSUserDefault或者plist文件,如果是存储自定义对象或者自定义对象数组用归档。存储大量的数据,使用数据库、CoreData。如果是想实现删除app数据也能保存使用KeyChain。一般存储自定义对象的思路是转换为NSData来保存。

你可能感兴趣的:(iOS中的几种数据存储方式)