今天首次体验swift4.0,碰到了一个问题
import UIKit
class HomeModel: NSObject
{
var hd_thumb_url : String = ""
var thumb_url : String = ""
init(dic : [String : Any])
{
super.init()
setValuesForKeys(dic)
}
override func setValue(_ value: Any?, forUndefinedKey key: String) {
}
}
使用系统方法setValuesForKeys赋值,明明有这个属性,但它还是走
override func setValue(_ value: Any?, forUndefinedKey key: String)这个方法,苦思良久,没有解决.
感谢主题 : 在swift 4.0中用系统方法setValuesForKeys()赋值问题,帮我解决了这个问题
原来在swift4中,编译器不再自动推断,你必须显式添加@objc,就酱~
class HomeModel: NSObject
{
@objc var hd_thumb_url : String = ""
@objc var thumb_url : String = ""
init(dic : [String : Any])
{
super.init()
setValuesForKeys(dic)
}
override func setValue(_ value: Any?, forUndefinedKey key: String) {
}
}
网友评论