IOS开发-Swift3.0如何获取对象或类的类型

代码示例运行环境为 IOS10,Swift3.0

在swift3.0下获取类或者对象的 类型 需要分两种情况。


类继承于NSObject
自定义类User

class User: NSObject {
}

此时获取类型的方法为

let user = User()
let classType1:AnyClass = User.classForCoder()
let classType2:AnyClass = User.self
let objectType1:AnyClass = user.classForCoder
let objectType2:AnyClass = type(of:user)

其中classForCoder()classForCoder返回的是AnyClass,而另外两个方法返回的是User.Type,AnyClass可以通过user.classForCoder as! User.Type转换为实际的类型。


纯Swift类
跟继承自NSObject类相比,不能通过 classForCoder来实现。

如果有任何疑问或者是文中存在技术性错误,请留言,我会尽快回复或者更改。

推荐阅读更多精彩内容