I created a Swift class that conforms to NSCoding. (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") } }
But when I call ...
let data = NSKeyedArchiver.archivedDataWithRootObject(cmd);
It gives an error message.
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:]
What should I do?
ios swift xcode6 nscoding
Hlung Sep 12 '14 at 9:56 on 2014-09-12 09:56
source share