encodeWithCoder: Unbekannter Selektor an Instanz gesendet [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Wie kann ich den Fehler "Unbekannter Selektor an Instanz gesendet" debuggen? 9 answers

Ich versuche, das NSCoding-Protokoll zum Lesen und Schreiben von Daten für plist zu verwenden. Ich bekomme eine Ausnahme, wenn ich versuche, [GolfHoles] zu schreiben, eine Unterklasse von NSObject. Ich habe mehrere Posts mit unterschiedlichen Ansätzen gelesen, aber keiner hat geholfen.

class GolfCourse: NSObject, NSCoding {
var name: String = ""
var location: String = ""
var holes: [GolfHole] = [GolfHole]()

init(holes: [GolfHole]) {
    self.holes = holes
}

// MARK: NSCoding Protocol
func encodeWithCoder(aCoder: NSCoder) {
    aCoder.encodeObject(name, forKey: "name")
    aCoder.encodeObject(location, forKey: "location")
    aCoder.encodeObject(holes, forKey: "holes") // exception here

}

required init(coder aDecoder: NSCoder) {
    super.init()
    name = aDecoder.decodeObjectForKey("name") as! String
    location = aDecoder.decodeObjectForKey("location") as! String
    holes = aDecoder.decodeObjectForKey("holes") as! [GolfHole]

}

override init() {
    super.init()
    for var i=0; i<18; i++ {
        let newHole = GolfHole()
        self.holes.append(newHole)

    }
}

}

Wie schreibe und lese ich das Array?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage