swift 如何根据属性名称判断属性类型

var nick: String?
var sex = 0
var validate: PersonalValidateModel?

如上代码:
现有String?, Tnt, NSObject?,三种类型的属性,我想通过属性名判断他的类型,请问有什么方法可以实现?

需要实现的效果:
重写setValue方法的时候:
根据获取到的key,获得属性,判断属性类型,然后赋值;
例如

setValue(AnyObject, forKey: "validate")

在给validate赋值时,我首先需要判断他是PersonalValidateModel类型,然后对它进行初始化操作,再赋值。

请问以上内容如何实现?

阅读 5.8k
3 个回答

Objective-C可以这个就可以
你只要从NSObject继承 就能用以前的方法了~

Swift中可以用is来进行类型判断

if nick is String? { }
if sex is Int { }
if validate is PersonalValidateModel? { }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进