iOS - Swift NSKeyedArchiver 数据归档】的更多相关文章

前言 public class NSKeyedArchiver : NSCoder public class NSKeyedUnarchiver : NSCoder 在 OC 语言中,归档是一个过程,即用某种格式来保存一个或多个对象,以便以后还原这些对象.通常,这个过程包括将(多个)对象写入文件中,以便以后读取该对象.可以使用归档的方法进行对象的深复制. 采用归档的形式来保存数据,该数据对象需要遵守 NSCoding 协议,并且该对象对应的类必须提供 encodeWithCoder: 和 ini…
前言 @interface NSKeyedArchiver : NSCoder @interface NSKeyedUnarchiver : NSCoder 在 OC 语言中,归档是一个过程,即用某种格式来保存一个或多个对象,以便以后还原这些对象.通常,这个过程包括将(多个)对象写入文件中,以便以后读取该对象.可以使用归档的方法进行对象的深复制. 采用归档的形式来保存数据,该数据对象需要遵守 NSCoding 协议,并且该对象对应的类必须提供 encodeWithCoder: 和 initWit…
前言 在 OC 语言中,归档是一个过程,即用某种格式来保存一个或多个对象,以便以后还原这些对象. 通常,这个过程包括将(多个)对象写入文件中,以便以后读取该对象.可以使用归档的方法进行对象的深复制. 采用归档的形式来保存数据,该数据对象需要遵守 NSCoding 协议,并且该对象对应的类必须提供 encodeWithCoder: 和 initWithCoder: 方法. 前一个方法告诉系统怎么对对象进行编码,而后一个方法则是告诉系统怎么对对象进行解码. 缺点:归档的形式来保存数据,只能一次性归档…
前言 直接将数据写在代码里面,不是一种合理的做法.如果数据经常改,就要经常翻开对应的代码进行修改,造成代码扩展性低.因此,可以考虑将经常变的数据放在文件中进行存储,程序启动后从文件中读取最新的数据.如果要变动数据,直接修改数据文件即可,不用修改代码.一般可以使用属性列表文件存储 NSArray 或者 NSDictionary 之类的数据,这种 "属性列表文件" 的扩展名是 plist,因此也称为 "plist 文件". plist 是以 xml 文件形式存储的. 如…
前言 public class NSUserDefaults : NSObject 用来保存应用程序设置和属性.用户保存的数据.用户再次打开程序或开机后这些数据仍然存在.如果往 userDefaults 里存了一个可变数组,取出来的时候这个数组对象就变成了不可变的. NSUserDefaults 可以存储的数据类型包括:NSData.NSString.NSNumber.NSDate.NSArray.NSDictionary.如果要存储其他类型,则需要转换为前面的类型,才能用 NSUserDefa…
前言 public class NSData : NSObject, NSCopying, NSMutableCopying, NSSecureCoding public class NSMutableData : NSData NSData 和它的可变长子类 NSMutableData 是字节缓冲区的对象化封装.我们可以获得简单缓冲区,并进行一些转换操作.通常我们并不会直接创建字节数据,而是从其他类型的内容转换成字节数据. 所谓简单缓冲区,就是缓冲区内只包含数据,无内嵌指针. 1.NSData…
归档与恢复归档 归档,英文Archiver['ɑrkɪvə],这里指的是将OC的对象存储为一个文件或者网络上的一个数据块. 恢复归档.英文UnArchiver,指的是将一个来自文件或网络的归档数据块恢复成内存中的一个OC对象. 归档和恢复主要用于对自己定义类型对象进行存储.在程序暂停或关闭前保存自己定义数据.在程序又一次恢复状态或启动后读取存储的自己定义数据. 支持归档和恢复的类必须实现NSCoding协议,再由NSKeyedArchiver和NSKeyedUnarchiver类进行转换.将对象…
如果对象是NSString.NSDictionary.NSArray.NSData.NSNumber等类 型,可以直接用NSKeyedArchiver进行归档和恢复 不是所有的对象都可以直接用这种方法进行归档,只有遵守了NSCoding协 议的对象才可以 NSCoding协议有2个方法: encodeWithCoder: 每次归档对象时,都会调用这个方法.一般在这个方法里面指定如何归档对象中的每个实例变量, 可以使用encodeObject:forKey:方法归档实例变量 initWithCod…
iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data. 1.属性列表 涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults standardUserDefaults]就够用了 @interface User : NSObject <NSCoding> @property (nonatomic, assign) NSInteger userID; @property (nonatomic, copy) NSString…
iOS应用数据存储的常用方式 XML属性列表(plist)归档 Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3 Core Data 应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是应用的文件夹),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒 应用沙盒的文件系统目录,如下图所示(假设应用的名称叫Layer)   模拟器应用沙盒的根路径在: (apple是用户名, 6.0是模拟器版本)/Users/apple/…