小编use*_*301的帖子

encodeWithCoder:发送到实例的无法识别的选择器

我正在尝试使用NSCoding协议来读取和写入数据到plist.当我尝试编写[GolfHoles]时,我得到一个例外,它是NSObject的子类.我已经阅读了几个不同方法的帖子,但都没有帮助.

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++ …
Run Code Online (Sandbox Code Playgroud)

arrays nscoding ios swift

1
推荐指数
1
解决办法
9106
查看次数

标签 统计

arrays ×1

ios ×1

nscoding ×1

swift ×1