代码示例运行环境为 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
来实现。
如果有任何疑问或者是文中存在技术性错误,请留言,我会尽快回复或者更改。