如何检查我的变量在ios swift中的对象类型?
例如
let test= ["Chicago", "New York", "Oregon", "Tampa"]
是测试NSArray吗? NSMutableArray里?的NSString?
我习惯使用即时窗口的visual studio,这可以在Xcode中处于调试模式吗?
答案 0 :(得分:10)
有几种方法可以在调试或编译时确定对象的类型。
如果显式声明变量的类型,只需查找它:
let test: [String] = ["Chicago", "New York", "Oregon", "Tampa"]
此处,test
明确标记为[String]
(String
s的Swift数组。)
如果隐式推断变量的类型,我们可以通过⌥选项 +点击获得一些信息。
let test = ["Chicago", "New York", "Oregon", "Tampa"]
在此,我们可以看到test
的类型为[String]
。
我们可以使用dynamicType
打印对象的类型:
let test = ["Chicago", "New York", "Oregon", "Tampa"]
println(test.dynamicType)
打印:
Swift.Array<Swift.String>
我们还可以在变量的视图中看到我们的变量:
在这里,我们可以在括号中清楚地看到变量的类型:[String]
此外,在断点处,我们可以向调试器询问变量:
(lldb) po test
["Chicago", "New York", "Oregon", "Tampa"]
(lldb) po test.dynamicType
Swift.Array<Swift.String>
答案 1 :(得分:5)
您可以在Swift中使用is
。
if test is NSArray {
println("is NSArray")
}
答案 2 :(得分:1)
type(of:)
返回值的动态类型。
func foo<T>(x: T) -> T.Type {
return type(of: x)
}