cast NSString! String en swift

J'ai un exemple de nom de variable dans la Chaîne de

var name: String

Ma classe implémente l'NSCoding protocole. Donc, pour le nom, j'ai eu

func encodeWithCoder(aCoder: NSCoder) {
    aCoder.encodeObject(self.name, forKey: kName)
}

required init(coder aDecoder: NSCoder) {
    self.name = aDecoder.decodeObjectForKey(kName) as String  //CRASH HERE
}

Résultat? J'ai été d'obtenir un temps de fonctionnement de crash lors de l'initiation avec décodeur. J'ai changé init:

var temp = aDecoder.decodeObjectForKey(kName) as NSString!
self.name = aDecoder.decodeObjectForKey(kName) as String

et réalisé la valeur temp est tenue le droit NSString valeur. j'ai donc pensé que la ligne ci-dessous pour le réparer, mais il émet une erreur de l'éditeur de liens:

self.name = aDecoder.decodeObjectForKey(kName) as NSString!

les questions est de savoir comment prendre le temp et le mettre dans le nom?

Essayez: self.name = aDecoder.decodeObjectForKey(kName) as AnyObject! as String
Merci pour la réponse, mais il se bloque toujours.

OriginalL'auteur Arash | 2014-09-20