Hlu*_*ung 67 nscoding ios swift xcode6
我创建了一个符合NSCoding的Swift类.(Xcode 6 GM,Swift 1.0)
import Foundation
private var nextNonce = 1000
class Command: NSCoding {
let nonce: Int
let string: String!
init(string: String) {
self.nonce = nextNonce++
self.string = string
}
required init(coder aDecoder: NSCoder) {
nonce = aDecoder.decodeIntegerForKey("nonce")
string = aDecoder.decodeObjectForKey("string") as String
}
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeInteger(nonce, forKey: "nonce")
aCoder.encodeObject(string, forKey: "string")
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我打电话给...
let data = NSKeyedArchiver.archivedDataWithRootObject(cmd);
崩溃给了我这个错误.
2014-09-12 16:30:00.463 MyApp[30078:60b] *** NSForwarding: warning: object 0x7a04ac70 of class '_TtC8MyApp7Command' does not implement methodSignatureForSelector: -- trouble ahead
Unrecognized selector -[MyApp.Command replacementObjectForKeyedArchiver:]
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
Hlu*_*ung 211
虽然Swift类的工作没有继承,但为了使用NSCoding你必须继承NSObject.
class Command: NSObject, NSCoding {
...
}
Run Code Online (Sandbox Code Playgroud)
太糟糕的编译器错误不是很有用的信息:(
| 归档时间: |
|
| 查看次数: |
17211 次 |
| 最近记录: |