ios归档

iOS应用数据存储的方式

橙三吉。 提交于 2020-02-15 16:53:01
iOS应用数据存储的方式 XML属性列表(plist)归档 preference(偏好设置) NSKeyedArchiver归档 SQLite3 Core Data 应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒 应用沙盒结构分析 应用程序包:包含了所有的资源文件和可执行文件 Document:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可以将游戏存档保存在该目录。 tmp:保存应用运行时所需要的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时不会备份该目录。 Library/Caches:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录。一般存储体积大、不需要备份的非重要数据 Library/Preference:保存应用的所有偏好设置,iOS的Settings(设置)应用会在该目录中查找应用的设置信息。iTunes同步设备时会备份该目录 应用沙盒目录的常见获取方式 1. tmp:NSString *tmp= NSTemporaryDirectory( ); 2. Library/Caches:(跟Document类似的有两种方法)

IOS --- 对象归档

我的未来我决定 提交于 2020-01-01 21:55:50
原文:http://blog.sina.com.cn/s/blog_7124765801015imx.html IOS提供的数据持久化方式有:SQLite、CoreData、属性列表、NSUserDefault、对象归档。 这里来简单介绍下对象归档: 对象归档是将对象归档以文件的形式保存到磁盘中(也称为序列化,持久化),使用的时候读取该文件的保存路径读取文件的内容(也称为接档,反序列化), (对象归档的文件是保密的,在磁盘上无法查看文件中的内容,而属性列表是明文的,可以查看)。 对象归档有两种方式:1:对foundation中对象进行归档 2:自定义对象归档 1、简单对象归档 使用两个类:NSKeyedArichiver、NSKeyedUnarchiver NSString *homeDirectory = NSHomeDirectory(); //获取根目录 NSString homePath = [homeDirectory stringByAppendingPathComponent:@"自定义文件名,如test.archiver"]; NSArray *array = @[@"abc", @"123", @12]; Bool flag = [NSKeyedArichiver archiveRootObject:array toFile:homePath]; if(flag)

IOS数据持久化之归档NSKeyedArchiver

微笑、不失礼 提交于 2020-01-01 21:55:35
IOS数据持久化的方式分为三种: 属性列表 (自定义的Property List 、NSUserDefaults) 归档 (NSKeyedArchiver) 数据库 (SQLite、Core Data、第三方类库等)   下面主要来介绍一个 归档NSKeyedArchiver 。    归档(又名序列化),把对象转为字节码,以文件的形式存储到磁盘上;程序运行过程中或者当再次重写打开程序的时候,可以通过解归档(反序列化)还原这些对象。    归档方式: 对Foundation框架中对象进行归档 对自定义的内容进行归档 对自定义的对象进行归档 <一> 对Foundation框架中对象进行归档 //获得文件路径 NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; NSString *filePath = [documentPath stringByAppendingPathComponent:@"file.archiver"]; //归档(序列化) NSArray *archiveAry = @[@"jereh",@"ios"]; if ([NSKeyedArchiver

iOS archive(归档)的总结

你离开我真会死。 提交于 2020-01-01 21:54:46
iOS 归档的记录 归档是一种很常用的文件储存方法,几乎任何类型的对象都能够被归档储存(实际上是一种文件保存的形式),浏览网上的一些资料后,并结合自己的一些经验,总结成此文。 一、使用archiveRootObject进行简单的归档 使用NSKeyedArichiver进行归档、NSKeyedUnarchiver进行接档,这种方式会在写入、读出数据之前对数据进行序列化、反序列化操作。 归档: NSString *homeDictionary = NSHomeDirectory(); //获取根目录 NSString *homePath = [homeDictionary stringByAppendingPathComponent:@ "atany.archiver" ]; //添加储存的文件名 BOOL flag = [NSKeyedArchiver archiveRootObject:@”归档” toFile:homePath]; //归档一个字符串 这种方式可以对字符串、数字等进行归档,当然也可以对NSArray与NSDictionary进行归档。返回值Flag标志着是否归档成功,YES为成功,NO为失败。 接档: [NSKeyedUnarchiver unarchiveObjectWithFile:homePath] 使用NSKeyedUnarchiver进行接档(反序列化

ios的 对象归档

邮差的信 提交于 2020-01-01 21:53:43
IOS提供的数据持久化方式有:SQLite、CoreData、属性列表、NSUserDefault、对象归档。 这里来简单介绍下对象归档: 对象归档是将对象归档以文件的形式保存到磁盘中(也称为序列化,持久化),使用的时候读取该文件的保存路径读取文件的内容(也称为接档,反序列化), (对象归档的文件是保密的,在磁盘上无法查看文件中的内容,而属性列表是明文的,可以查看)。 对象归档有两种方式:1:对foundation中对象进行归档 2:自定义对象归档 1、简单对象归档 使用两个类:NSKeyedArichiver、NSKeyedUnarchiver NSString *homeDirectory = NSHomeDirectory(); //获取根目录 NSString homePath = [homeDirectory stringByAppendingPathComponent:@"自定义文件名,如test.archiver"]; NSArray *array = @[@"abc", @"123", @12]; Bool flag = [NSKeyedArichiver archiveRootObject:array toFile:homePath]; if(flag) { NSLog(@"归档成功!"); } 读取归档文件的内容: NSArray *array =

iOS archive(归档)的总结

情到浓时终转凉″ 提交于 2019-12-06 21:52:50
iOS 归档的记录 归档是一种很常用的文件储存方法,几乎任何类型的对象都能够被归档储存(实际上是一种文件保存的形式),浏览网上的一些资料后,并结合自己的一些经验,总结成此文。 一、使用archiveRootObject进行简单的归档 使用NSKeyedArichiver进行归档、NSKeyedUnarchiver进行接档,这种方式会在写入、读出数据之前对数据进行序列化、反序列化操作。 归档: [cpp] view plain copy NSString *homeDictionary = NSHomeDirectory(); //获取根目录 NSString *homePath = [homeDictionary stringByAppendingPathComponent:@ "atany.archiver" ]; //添加储存的文件名 BOOL flag = [NSKeyedArchiver archiveRootObject:@”归档” toFile:homePath]; //归档一个字符串 这种方式可以对字符串、数字等进行归档,当然也可以对NSArray与NSDictionary进行归档。返回值Flag标志着是否归档成功,YES为成功,NO为失败。 接档: [cpp] view plain copy [NSKeyedUnarchiver

IOS(swift)-数据存储 · NSKeyedArchiver 归档

五迷三道 提交于 2019-12-06 07:00:28
需求: 有一个通讯列表,可以自行添加联系数据,但是重新开启后,添加的数据都会清空,我希望打开后,上一次的数据能保留。 这我们就必须用到数据持久化,这一次,我将用NSKeyedArchiver 归档 方式来做数据持久化,达到再次打开应用后,数据依然存在。 通讯录.png NSKeyedArchiver、NSKeyedUnarchiver ,主要用在ios数据存储上,数据从内存存储到闪存上,这个过程称为归档。Apple官方文档中,这些数据类型包括: NSData、NSString、NSNumber、NSDate、NSArray、NSDictionary。很显然,复杂数据例如UIImage,无法直接归档。但我们有一种变通的做法,先将UIImage对象转换为NSData,再对NSData进行归档。 一、创建一个数据模型(自定义类) import UIKitclass JKContactModel: NSObject,NSCoding{ var name:NSString! var phone:NSString! func encodeWithCoder(aCoder: NSCoder){ aCoder.encodeObject(self.name, forKey: "name") aCoder.encodeObject(self.phone, forKey: "phone") }