【SwiftUI】1.特性之一:不透明返回类型
![](/theme/default/default/images/main/eye-open.png)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
![](/theme/default/default/images/main/icon-jing.png)
本文作者分享了使用SwiftUI半年多来的技术积累,并决定以系列文章的形式进行输出,旨在构建系统化的知识结构并方便他人检索。本篇文章着重介绍了SwiftUI中的不透明返回类型(Opaque Result Type)。
不透明返回类型常见于SwiftUI开发中,例如ContentView的View返回类型和body属性的some View类型。View在SwiftUI中是一个核心协议,用于描述屏幕上的元素,其中包含一个关联类型(associatedtype)。这个关联类型类似于泛型,允许更广泛的类型使用,而不是固定的某个类型。使用泛型可以约束返回值类型,但直接指定View作为返回类型是错误的。
body属性作为SwiftUI界面的主体,类似于一块画布。使用some View作为返回类型,可以让开发者在界面上组合使用多种控件,如Text、Button、Image等,而无需关心具体控件类型。例如,一个仅包含Text控件的ContentView可以等价于返回一个Text类型而非some View。但在更复杂的界面,如登录页面,需要将不同控件统一封装进VStack中,最终也是返回一个确定的VStack类型,体现了some的不透明性。
不透明返回类型的好处在于每次返回的都是遵守View协议的确定类型,无需关心具体是哪种控件类型。这为开发者提供了灵活的开发模式,并降低了代码书写难度。
总结来说,Swift 5.1版本新增的不透明返回类型为SwiftUI开发带来了便利,允许开发者在组合控件显示界面时,不必关心具体控件的类型,只需确保返回的类型确定且遵守View协议,从而提升了开发效率。
想要了解更多内容?
![](/theme/default/default/images/main/icon-jing.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)