Swift实现对象归档

Swift实现对象归档时有几个注意点

  • 要继承 NSCoding,实现两个方法
  • extension 是一个分类,分类不允许有存储能力,所以协议方法不能写在分类中
  • 协议中的init(coder decoder: NSCoder)函数会覆盖原始的构造函数,所以类中至少还要有另一个init方法
  • 如果不指定键名,会使用属性名称作为 key,基本数据类型,需要指定 key
class <#className#>: NSObject,NSCoding {
    // 至少要有一个 init 方法,否则外部没有办法直接实例化对象
    // override init() {}

    ///  归档方法
    func encodeWithCoder(encoder: NSCoder) {
        // TODO
    }

    ///  解档方法,会覆盖构造函数
    required init(coder decoder: NSCoder) {
        // TODO
    }
}
时间: 2024-10-18 22:51:00

Swift实现对象归档的相关文章

iOS开发——数据持久化Swift篇&amp;模型对象归档

模型对象归档 1 import UIKit 2 3 class ViewController: UIViewController { 4 5 6 7 @IBOutlet weak var textField: UITextField! 8 9 @IBAction func btnSave(sender: UIButton) { 10 var text = textField.text as NSString 11 var image = UIImage(named: "log") 12

swift中使用对象归档进行数据本地

对象归档是ios持久化中的其中一种,也是很常用的一种.现在来看看swift是如何实现的.实现要点1),必须实现NSCoding的协议 import UIKit let path=(NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory,NSSearchPathDomainMask.UserDomainMask, true)[0] as String).stringByAppendingString("

IOS开发——UI进阶篇(十一)应用沙盒,归档,解档,偏好设置,plist存储,NSData,自定义对象归档解档

1.iOS应用数据存储的常用方式XML属性列表(plist)归档Preference(偏好设置)NSKeyedArchiver归档(NSCoding)SQLite3 Core Data 2.应用沙盒每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒应用沙盒的文件系统目录,如下图所示(假设应用的名称叫Layer)模拟器应用沙盒的根路径在: (apple是用户名, 8.0是模拟器版本)/Users/apple/Libra

IOS --- 对象归档

原文:http://blog.sina.com.cn/s/blog_7124765801015imx.html IOS提供的数据持久化方式有:SQLite.CoreData.属性列表.NSUserDefault.对象归档. 这里来简单介绍下对象归档: 对象归档是将对象归档以文件的形式保存到磁盘中(也称为序列化,持久化),使用的时候读取该文件的保存路径读取文件的内容(也称为接档,反序列化), (对象归档的文件是保密的,在磁盘上无法查看文件中的内容,而属性列表是明文的,可以查看). 对象归档有两种方

iOS文档序列化(对象归档)

对象归档: 概念: 对象归档是指将对象写入文件保存在硬盘,当再次重新打开程序时,可以还原这些对象.也称:对象序列化.对象持久化. 数据持久性的方式(其实就是3类) 1,NSKeyedArchiver--对象归档 2,NSUserDefaults  3,属性列表 4,SQLite数据库  5,Core Data数据库 归档方式: 对Foundation库中对象进行归档 自定义对象进行归档(需要实现归档协议,NSCoding) 归档与属性列表的区别: 1,归档后的文件是加密的,属性列表是明文的. 2

Swift学习——A Swift Tour 对象和类

Objects and Classes  对象和类 使用关键字 class 定义一个类,在定义类的属性的时候与常量或者变量的定义相同(继承父类的属性定义不同),方法和函数的定义也相同 class Shape { var numberOfSides = 0 func simpleDescription() -> String { return "A shape with \(numberOfSides) sides." } } 使用 ()来声明类的实例,使用点 . 语法来获取类的属

ios学习笔记——对象归档

对象归档是一种序列化方式.为了便于数据传输,先将归档对象序列化为一个文件,然后再通过反归档将数据恢复到对象中. 归档技术可以实现数据的持久化,不过在大量数据和频繁读写的情况下,它就不太适合了. 对一个对象进行归档的条件是:改对象的类必须实现NSCoding协议,而且每个成员对象应该是基本数据类型或都是实现NSCoding协议的某个类的实例.

OC学习16——对象归档

转载自  OC学习篇之---归档和解挡 OC中的归档就是将对象写入到一个文件中,Java中的ObjectInputStream和ObjectOutputStream来进行操作的.当然在操作的这些对象都是需要实现一个接口:Serializable,同样的OC中操作的对象也是需要实现一个协议的,后面会说到. 一.已有类型的归档和解档 首先来看一个简单的例子: 1 // 2 // main.m 3 // 33_ObjectToFile 4 // 5 // Created by jiangwei on

浅谈iOS开发中的对象归档

iOS提供的数据持久化方式有:SQLiteCoreData属性列表.NSUserDefault对象归档. 这里来简单介绍下iOS开发中的对象归档: 对象归档是将对象归档以文件的形式保存到磁盘中(也称为序列化,持久化)使用的时候读取该文件的保存路径读取文件的内容(也称为接档,反序列化) 对象归档的文件是保密的磁盘上无法查看文件中的内容,而属性列表是明文的可以查看) 对象归档有两种方式:1.对foundat中对象进行归档     2.自定义对象归档 1.简单对象归档 使用两个类:NSKeyedA r