Swift4 KVC给类属性赋值报错

05-29 14:51 235 0
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
    ...
}
做自己喜欢做的事。
Up骚年
Up骚年 站长 @ 十七度 创建者 声望
all or nothing, now or never.
0 人点赞
0 条评论
排序方式 时间 投票
快来抢占一楼吧
请登录后发表评论