如何理解SwiftUI中的NavigationView声明代码
SwiftUI中的“NavigationView”声明非常混乱。(可能我不擅长Swift。)在声明中,“NavigationView”是一个结构,但初始值设定项甚至没有主体,就像协议声明一样 NavigationView声明如下所示:如何理解SwiftUI中的NavigationView声明代码,swift,swiftui,Swift,Swiftui,SwiftUI中的“NavigationView”声明非常混乱。(可能我不擅长Swift。)在声明中,“NavigationView”是一个结构,但初始值设定项甚至没有主体,就像协议声明一样 NavigationView声明如下所示: @available(iOS 13.0, OSX 10.15, tvOS 13.0, *) @available(watchOS, unavailable) public struct NavigationView<Root> where Root :
@available(iOS 13.0, OSX 10.15, tvOS 13.0, *)
@available(watchOS, unavailable)
public struct NavigationView<Root> where Root : View {
public init(root: () -> Root)
public var body: _View { get }
/// The type of view representing the body of this view.
///
/// When you create a custom view, Swift infers this type from your
/// implementation of the required `body` property.
public typealias Body
}
@available(iOS 13.0, OSX 10.15, tvOS 13.0, *)
public struct MyNavigationView<Root> where Root:View {
public init(root: () -> Root)
public var body: _View { get }
public typealias Body
}
您看到的是Swift文件的界面。与头文件类似,它向您显示该类/struct/enum/任何您可以访问的成员及其签名 所以你不应该只是复制粘贴代码然后编译它。这不是真正的代码。它只是告诉你每个成员的签名。例如,通过查看该文件,可以看出初始化器采用了
()->根
闭包
我很确定SwiftUI不是开源的,所以你很难获得它的源代码
通过使用助理编辑器,您实际上可以看到自己代码的接口。就在“副本”部分下:
好的,我明白了。非常感谢你。
"initializer requires a body"
"Expected '{' to start getter definition"
"Expected '=' in type alias declaration"