检查对象的类型ios swift

时间:2015-07-19 23:11:09

标签: xcode swift

如何检查我的变量在ios swift中的对象类型?

例如

let test= ["Chicago", "New York", "Oregon", "Tampa"]

是测试NSArray吗? NSMutableArray里?的NSString?

我习惯使用即时窗口的visual studio,这可以在Xcode中处于调试模式吗?

3 个答案:

答案 0 :(得分:10)

有几种方法可以在调试或编译时确定对象的类型。

如果显式声明变量的类型,只需查找它:

let test: [String] = ["Chicago", "New York", "Oregon", "Tampa"]

此处,test明确标记为[String]String s的Swift数组。)

如果隐式推断变量的类型,我们可以通过⌥选项 +点击获得一些信息。

let test = ["Chicago", "New York", "Oregon", "Tampa"]

enter image description here

在此,我们可以看到test的类型为[String]

我们可以使用dynamicType打印对象的类型:

let test = ["Chicago", "New York", "Oregon", "Tampa"]

println(test.dynamicType)

打印:

Swift.Array<Swift.String>

我们还可以在变量的视图中看到我们的变量:

enter image description here

在这里,我们可以在括号中清楚地看到变量的类型:[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)
}