美文网首页swift
swift4 model.setValuesForKeys(di

swift4 model.setValuesForKeys(di

作者: 紫水依 | 来源:发表于2018-05-30 11:42 被阅读0次

    swift4中字典转BookDataModel可以使用model.setValuesForKeys(dic),model类如下:

    class BookDataModel: NSObject {
        
        var title:String = ""
        var subtitle:String = ""
        
        init(dic:[String:Any]) {
            super.init()
            self.setValuesForKeys(dic)// 字典转BookDataModel便捷方法
        }
        
        // 字典转BookDataModel,BookDataModel中没有的key重写不抛出异常
        override func setValue(_ value: Any?, forUndefinedKey key: String) {
            
        }
    
    }
    

    但是发现转model不成功,百度之后发现需要在class BookDataModel: NSObject之前加上@objcMembers修饰,然后就可以成功了。添加之后如下:

    @objcMembers 
    class BookDataModel: NSObject {
        
        var title:String = ""
        var subtitle:String = ""
        
        init(dic:[String:Any]) {
            super.init()
            self.setValuesForKeys(dic)// 字典转BookDataModel便捷方法
        }
        
        // 字典转BookDataModel,BookDataModel中没有的key重写不抛出异常
        override func setValue(_ value: Any?, forUndefinedKey key: String) {
            
        }
    
    }
    

    在需要的地方调用就可以了:

    let model = BookDataModel(dic: book)
    

    参考链接:
    ios swift4之kvo的使用

    相关文章

      网友评论

        本文标题:swift4 model.setValuesForKeys(di

        本文链接:https://www.haomeiwen.com/subject/txetsftx.html