是否可以从Type
中的类中检索数据Swift language
?
这是一个例子:
class Test : NSObject
{
let field1 : String
let field2 : Int
init(value1 : String, value2 : Int)
{
field1 = value1
field2 = value2
}
}
let test1 = Test(value1: "Hello", value2: 1)
//this code return the same string with class name (__lldb_expr_129.Test)
let classString = NSStringFromClass(test1.classForCoder)
let className2 = reflect(test1).summary
//this code return the same ExistentialMetatype value and not the Tes or NSObject type
let classType = reflect(test1).valueType
let classType2 = test1.self.classForCoder
//this return Metatype and not the Test or NSObject type
let classType3 = test1.self.dynamicType
是否有方法可以检索Test
类型,而不是ExistentialMetatype
或Metatype
值?
答案 0 :(得分:1)
.self
对象是没有意义的。 test1.self
与test1
test1.classForCoder
与test1.dynamicType
相同,只是Test.self
。这是类型(元类型类型的值)。 Swift类型目前没有很好的可打印表示形式;但仅仅因为它打印不好并不意味着它不是你想要的。由于在这种情况下类型是一个类,您可以使用NSStringFromClass
或将其强制转换为一个对象(为您提供Objective-C类对象)并打印它。