zoukankan      html  css  js  c++  java
  • Swift语言精要

    在swift中你可以把一个对象转换成为数据,你所要做的就是

    首先,你需要让对象实现NSObject和NSCoding协议。

    其次,实现以下两个方法:

      encodeWithCoder

      init(coder aDecoder: NSCoder)  // 一个带NSCoder参数的初始化器

    例子代码:

    class SerializableObject : NSObject, NSCoding {
        var name : String?
        func encodeWithCoder(aCoder: NSCoder) {
            aCoder.encodeObject(name!, forKey:"name")
        }
        override init() {
            self.name = "My Object"
        }
        required init(coder aDecoder: NSCoder) {
            self.name = aDecoder.decodeObjectForKey("name") as? String
        }
    }

    如果对象实现了NSCoding协议,那么它就能被转换成为NSData对象。

    NSKeyedArchiver - 序列化

    NSKeyedUnarchiver - 反序列化

    例子代码:

    let anObject = SerializableObject()
    anObject.name = "My Thing That I'm Saving"
    
    // Converting it to data
    let objectConvertedToData = NSKeyedArchiver.archivedDataWithRootObject(anObject)
    
    // Converting it back
    // Note that the conversion might fail, so 'unarchiveObjectWithData' returns
    // an optional value. So, use 'as?' to check to see if it worked.
    let loadedObject = NSKeyedUnarchiver.unarchiveObjectWithData(objectConvertedToData)
        as? SerializableObject
    
    print(loadedObject?.name) //"My Thing That I'm Saving"
  • 相关阅读:
    [转]Java中实现自定义的注解处理器
    [转]IntelliJ IDEA 自定义方法注解模板
    [转]Intellij Idea自动添加注释的方法
    C++中substr的用法
    C++中find()函数和rfind()函数的用法
    无符号类型
    标准库string与C风格字符串
    vector对象
    string 类(二)
    string类
  • 原文地址:https://www.cnblogs.com/davidgu/p/5519786.html
Copyright © 2011-2022 走看看