代码示例运行环境为 IOS10,Swift 3.0
github地址:GitHub - ZhangJiming/RainExtension: Simple Dic2Model
本文参考文章,该文章使用OC语言,我是在此基础上使用了Swift3.0,感谢此文章作者 微凉
我是觉得目前关于Swift下的runtime内容比较少,特上传到github上供初学者参考。
在Swift3.0下要使用runtime,并实现字典转模型,需要具备几点:
第一点,模型一定要继承自NSObject类,这样才可能具备运行时的特征。当然也可以使用纯Swift类,然后在类名和属性名称下加@obj修饰符才可,但是我觉得太过于麻烦,又没有保证,还是直接继承自NSObject比较好。
第二点,模型中所有的变量都必须初始化,也就是不能为optianal类型。不然也是不能正常识别的。
第三点,模型中的数据类型是有限制的,例如Swift中的enum、Tuple等都是不可的,但是我没有具体测试过所有的数据类型,我只能说Swift中的String、Dictionary、Array、Bool、Int、Float 都是可以的。
当我再接触Swift之后,我一直犹豫还要不要使用 runtime 这种OC时代的产物。我现在觉得还是很有必要的,利大于弊。
如果有任何疑问或者是文中存在技术性错误,请留言,我会尽快回复或者更改。