如果该值存储在“Any”变量中,那么获取值的数据类型的字符串表示的最简单方法是什么?
例如,我正在调试具有此代码的代码......
extension SomeClass : Mappable{
static func map(value:Any) -> SomeClass{
return Parse(value)
}
}
我正在试图找出通过该函数传递的数据类型,但如果我使用type(of :),我会继续获得'Any'而不是其中包含的值。
extension SomeClass : Mappable{
static func map(value:Any) -> SomeClass{
let nameOfType = ??? <-- This is what I'm trying to figure out
log(nameOfType)
return Parse(value)
}
}
我只是想将数据类型打印到调试窗口,而不是使用is
或as
进行测试等。这完全是出于日志记录/调试的原因。
答案 0 :(得分:0)
static func map(value:AnyObject) -> AnyClass{
return value.classForCoder
}
或者
static func map(value:Any) -> AnyClass{
return (value as AnyObject).classForCoder
}
答案 1 :(得分:0)
在Swift 4中你可以这样做:
static func map(value: Any) -> Any.Type {
return type(of: value)
}
答案 2 :(得分:0)
好的,我明白了。这是一个两步的过程。
你必须:
chown -R www-data:www-data /var/www/html/Projectfolder
获取变量的类型(正如其他人所描述的那样)type(of:)
获取该类型的名称(这是缺失的部分)这是一个例子......
String(describing:)
这就是我追求的目标。谢谢你的其他答案。希望这有帮助!