swift4.0 初体验的悲剧

今天首次体验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) {  
    }
}

你可能感兴趣的:(swift4.0 初体验的悲剧)