Swift中的自定义类存档

szu*_*rse 1 nskeyedarchiver ios nskeyedunarchiver swift

我想在swift中存档和取消归档自定义对象,如下所示:

class Line : NSObject, NSCoding  {

    var start : CGPoint


    init(start _start: CGPoint) {
        start = _start
    }

    required init(coder aDecoder: NSCoder) {
        // 1 - compile time error
        self.start = aDecoder.decodeObjectForKey("start") as CGPoint
    }

    override init() {
    }

    func encodeWithCoder(aCoder: NSCoder) {
        // 2 - compile time error
        aCoder.encodeObject(start, forKey: "start")
    }
}
Run Code Online (Sandbox Code Playgroud)

1.编译时错误是:类型'CGPoint'不符合协议'AnyObject'

2.编译时错误是:调用中的额外参数'forKey'

如何归档和取消归档CGPoint,我知道CGPoint是一个惊天动地,这是问题所在,但如何解决呢?

提前致谢.