检查对象的类型ios swift

7 xcode swift

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

例如

let test= ["Chicago", "New York", "Oregon", "Tampa"]
Run Code Online (Sandbox Code Playgroud)

是测试NSArray?NSMutableArray里?的NSString?

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

nhg*_*rif 10

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


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

let test: [String] = ["Chicago", "New York", "Oregon", "Tampa"]
Run Code Online (Sandbox Code Playgroud)

这里,test清楚地标记为[String](一个Swift数组的Strings).


如果隐式推断变量的类型,我们可以通过⌥ Option+单击获取一些信息.

let test = ["Chicago", "New York", "Oregon", "Tampa"]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在这里,我们可以看到test的类型是[String].


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

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

println(test.dynamicType)
Run Code Online (Sandbox Code Playgroud)

打印:

Swift.Array<Swift.String>
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

在这里,我们可以在括号中清楚地看到变量的类型:[String]


此外,在断点处,我们可以向调试器询问变量:

(lldb) po test
["Chicago", "New York", "Oregon", "Tampa"]

(lldb) po test.dynamicType
Swift.Array<Swift.String>
Run Code Online (Sandbox Code Playgroud)


Rei*_*ica 5

你可以is在Swift中使用.

if test is NSArray {
  println("is NSArray")
}
Run Code Online (Sandbox Code Playgroud)