Sto cercando di utilizzare il protocollo NSCoding su una classe che ho scritto in rapida, ma non riesco a capire perché il compilatore si lamenta che "non è conforme al protocollo NSCoding" quando non implementare i metodi richiesti:Swift: non è conforme al protocollo NSCoding
class ServerInfo: NSObject, NSCoding {
var username = ""
var password = ""
var domain = ""
var location = ""
var serverFQDN = ""
var serverID = ""
override init() {
}
init(coder aDecoder: NSCoder!) {
self.username = aDecoder.decodeObjectForKey("username") as NSString
self.password = aDecoder.decodeObjectForKey("password") as NSString
self.domain = aDecoder.decodeObjectForKey("domain") as NSString
self.location = aDecoder.decodeObjectForKey("location") as NSString
self.serverFQDN = aDecoder.decodeObjectForKey("serverFQDN") as NSString
self.serverID = aDecoder.decodeObjectForKey("serverID") as NSString
}
func encodeWithCoder(_aCoder: NSCoder!) {
_aCoder.encodeObject(self.username, forKey: "username")
_aCoder.encodeObject(self.password, forKey: "password")
_aCoder.encodeObject(self.domain, forKey: "domain")
_aCoder.encodeObject(self.location, forKey: "location")
_aCoder.encodeObject(self.serverFQDN, forKey: "serverFQDN")
_aCoder.encodeObject(self.serverID, forKey: "serverID")
}
}
Si tratta di un bug o sto solo perdendo qualcosa?
"Questo potrebbe essere cambiato fra le release beta" Sì, uno vuole urlare a Swift, "Amico, ho ottenuto queste firme metodo _dal voi! _ Come osi dirmi che ora si sbagliano ?! " Ma naturalmente questa è la vita nella veloce corsia beta ... – matt
@matt: Almeno il compilatore stampa qui un messaggio ragionevole, invece di * "$% §? & Non può essere convertito in UInt8" * :) –
Tranne che metà del tempo in cui il parametro si lamenta è sbagliato! :)) – matt