如何查看SwiftUI中`some View`对应的具体类型?
查看SwiftUI不透明视图类型的简便方法
针对你提到的需求,这里有几个比复制到Playground更高效的方法:
临时变量+Option键查看:在代码中添加一行临时代码,捕获body的类型:
let temp = type(of: MyView().body)按住Option键点击
temp,Xcode就会显示some View对应的具体类型。如果MyView有必填属性,只需临时传入测试值(比如MyView(id: 1, name: "test"))即可,看完直接删掉这行代码。控制台打印(项目内直接运行):写一个简易工具函数,在项目里直接调用:
func logViewBodyType<V: View>(_ view: V) { print(type(of: view.body)) }之后在需要的地方调用
logViewBodyType(MyView()),运行项目后就能在控制台看到具体类型。这种方式不需要切换到Playground,适合属性较多的视图。调试器查看:在MyView的body代码里打个断点,运行程序触发断点后,在Xcode的调试控制台输入:
po type(of: self.body)回车后就能看到当前运行状态下body的具体类型,适合查看依赖运行时条件的动态类型。
内容的提问来源于stack exchange,提问作者Senseful
相关产品推荐
相关产品推荐

