gpt4 book ai didi

swift - 我应该如何理解 SwiftUI 中的 NavigationView 声明代码

转载 作者:行者123 更新时间:2023-11-28 07:25:40 38 4
gpt4 key购买 nike

SwiftUI 中'NavigationView' 的声明非常困惑。(也许我不擅长Swift。)在声明中'NavigationView' 是一个结构,但初始化器甚至没有主体,就像一个协议(protocol)声明.

像这样的 NavigationView 声明:

@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
}

NavigationView declaration code

我复制了'NavigationView'的声明样式,编写了一些类似的代码,如下所示。

我的仿代码是这样的:

@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
}

但是有一些错误就像:

"initializer requires a body"
"Expected '{' to start getter definition"
"Expected '=' in type alias declaration"

my imitation code and errors

最佳答案

您看到的是 Swift 文件的界面。类似于头文件,它向您显示此类/结构/枚举/您可以访问的任何内容及其签名的所有成员。

所以你不应该只复制和粘贴代码就可以编译它。这不是实际的代码。它只是告诉您每个成员的签名。例如,通过查看文件,您可以知道初始化程序采用了 () -> Root 闭包。

我很确定 SwiftUI 不是开源的,因此您无法轻易获得它的源代码。

其实你可以通过辅助编辑器看到自己代码的接口(interface)。它就在“对应”部分的下方:

enter image description here

关于swift - 我应该如何理解 SwiftUI 中的 NavigationView 声明代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56679699/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com