Swift4.0中KVC存在的问题

1.在swift 4.0中使用系统方法setValuesForKeys()进行赋值,明明有这个属性,但它还是走

override func setValue(_ value: Any?, forUndefinedKey key: String)

这个未定义的方法

在swift 4.0以下就可以正常赋值,只有swift 4.0不行。

报错:this class is not key value coding-compliant for the key xxxxx。

解决:在属性前面加上@objc,或者在类的上面加上@objcMembers。原因是因为在Swift 4中继承 NSObject 的 swift class 不再默认全部 bridge 到 OC。

2.关于Swift字典 - 模型转换时报错:unrecognizedselectorsenttoinstancexxx

原因:在将字典转换为模型过程中,出现了模型的属性数据类型和字典值的类型不匹配情况;

解决:将模型中的属性数据类型改为和字典一致;

你可能感兴趣的:(Swift4.0中KVC存在的问题)