'da NSCoding uygulandığında çökme NSCoding'e uyan bir Swift sınıfı oluşturdum. (Xcode 6 GM, Swift 1,0)Tanınmayan seçici var -replacementObjectForKeyedArchiver: Swift
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")
}
}
Ama dediğim zaman ... O çöküyor
let data = NSKeyedArchiver.archivedDataWithRootObject(cmd);
bana bu hata veriyor.
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:]
Ne yapmalıyım?
iyi yanıtı http://stackoverflow.com/a/24416671/1118772 – Noundla
@noundla Hayır, doesn bağlantınızda cevaptır :(çok bilgilendirici değil Sorunumla çalışıyorum, her iki çözümü de denedim 1) Komut sınıfıma ve NSCoding yöntemlerine '@ objc 'eklenmesi hala bana aynı hatayı veriyor. 2) 'NSObject' eklemek benim cevabımla aynı. İlk seferinde denemelisin. – Hlung
Dün aynı sorunu yaşadım ve bu çözümler benim için çalıştı. Sorunu çözmek için hem 1 hem de 2 çözüm kullandım. – Noundla