简单问题:body 变量到底是什么?如果我对 Swift 的解释是正确的,它会被初始化为 View 或其子类之一的对象。然而,在其初始化内部,似乎有一系列构造函数调用(例如 Text() 或 Image()),这些调用未存储在任何变量中或返回。我是来自 Java 的 Swift 新手,在网上找不到太多相关信息。有人可以解释一下吗?
另外,VStack 和 HStack 也是如此——它们是对象的集合吗?
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
Text("Hello SwiftUI!")
}
}
}
struct ContentView_Preview: PreviewProvider {
static var previews: some View {
ContentView()
}
}
最佳答案
View
是一个协议(protocol),而不是一个类。 body
的类型是 some View
,它是一个不透明的结果类型,这意味着它返回一些实现 View
的特定具体类型,但是该具体类型类型不会作为 API 的一部分向公众公开。
SwiftUI 使用 Swift 的函数构建器语法,尽管我不确定如果不先从其他地方阅读它,您如何自己弄清楚这一点。
进一步阅读:https://www.swiftbysundell.com/articles/the-swift-51-features-that-power-swiftuis-api/
关于swift - SwiftUI "body"变量是什么类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60085591/