Swift4.0 --- setValuesForKeys() 无法赋值问题
来源:互联网 发布:漫客绘心在线阅读软件 编辑:程序博客网 时间:2024/06/07 09:47
Swift4.0
网络请求数据后,解析json数据,得到模型对象 使用Swift4.0,通过setValuesForKeys保存字典数据,无法存储
代码如下
class BaseGameModel: NSObject { // MARK:- 定义属性 var tag_name : String = "" var icon_url : String = "" // MARK:- 自定义构造函数 override init() { } init(dict : [String : Any]) { super.init() setValuesForKeys(dict) } override func setValue(_ value: Any?, forUndefinedKey key: String) { print(key) }}
明明有tag_name、icon_url 属性,依然会走 override func setValue(_ value: Any?, forUndefinedKey key: String) {
方法,并打印出key,值为tag_name、icon_url
print(key)
}
原因
在swift3中,编译器自动推断@objc,换句话说,它自动添加@objc
在swift4中,编译器不再自动推断,你必须显式添加@objc
解决
// MARK:- 定义属性 @objc var tag_name : String = "" @objc var icon_url : String = ""
参考
在swift 4.0中用系统方法setValuesForKeys()赋值问题
阅读全文
0 0
- Swift4.0 --- setValuesForKeys() 无法赋值问题
- Swift4.0中setValuesForKeys()不起作用的问题
- 在swift 4.0中用系统方法setValuesForKeys()赋值问题
- 在swift 4.0中用系统方法setValuesForKeys()赋值问题
- [绍棠_Swift] swift4.0 NSMutableAttributeString的Range和NSRange问题
- swift4.0 涂鸦画板
- swift4.0 UIButton小解
- swift4.0 新特性
- Swift4.0 — 属性
- Swift4.0枚举基础知识
- swift4.0 适配
- Swift4.0 字符串操作
- Swift4.0开发笔记
- 【Swift4.0】基础部分
- 【Swift4.0】可选类型
- Swift4
- Swift4
- Swift4
- 选择排序之简单选择排序
- 2017-11-19周总结
- android studio 将引用第三方jar和.so的项目打包jar并混淆
- Treasure Exploration
- 剑指Offer 面试题19:正则表达式匹配 Java代码实现
- Swift4.0 --- setValuesForKeys() 无法赋值问题
- NOIP2017翻车记
- Drools7.5.0教程(3)-workbench安装
- onchange函数
- AndroidStudio生成自定义的混淆jar包(同时将assets目录打入jar包)(二)(by 星空武哥)
- Hbase部署
- Hadoop之MapReduce
- 亿级Web系统的高容错性实践
- Mybatis 注解形式多条件查询