Swift4 KVC给类属性赋值报错

19-05-29 14:51 字数 487 阅读 2704
class Person : NSObject {
    var name : String?
    var age : Int = 0

    override init() {
        super .init()
    }

    init(dict : [String : Any]) {
        super.init()
        setValuesForKeys(dict)
    }
}

let p2 = Person(dict: ["name": "jakie", "age" : 61])
print(p2.name ?? "NoOne")
print(p2.age)

在使用kvc给类属性赋值时报了下面的错

error: Execution was interrupted, reason: signal SIGABRT. The process has been left at the point where it was interrupted, use "thread return -x" to return to the state before expression evaluation.

解决这个错需要在属性前面加上@objc,如下

class Person : NSObject {
    @objc var name : String?
    @objc var age : Int = 0
    ...
}
0人点赞>
关注 收藏 改进 举报
0 条评论
排序方式 时间 投票
快来抢占一楼吧
请登录后发表评论
站长 @ 十七度
文章
384
粉丝
23
喜欢
195
收藏
31
排名 : 1
访问 : 147.27万
私信