首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift @escaping可选

Swift @escaping可选
EN

Stack Overflow用户
提问于 2022-09-04 03:28:15
回答 3查看 55关注 0票数 -2
代码语言:javascript
复制
@ViewBuilder content: @escaping (SwiperElement, SwiperItemResource, Dragging) -> Content

我自学得很快。请帮帮忙。

  1. 我可以将上述代码样式的名称命名为什么?回拨功能..?
  2. 我想设置一些可选的情况,怎么做呢?
EN

回答 3

Stack Overflow用户

发布于 2022-09-04 03:41:24

  1. 这是一种回调,名为closure,更多信息在这里:https://docs.swift.org/swift-book/LanguageGuide/Closures.html
  2. 如果您想设置可选的,只需添加像SwiperElement?这样的后缀
票数 0
EN

Stack Overflow用户

发布于 2022-09-04 07:48:24

@ViewBuilder是一个自定义参数属性,它从闭包构造视图。https://developer.apple.com/documentation/swiftui/viewbuilder

在使用视图生成器:)时对可选内容使用buildif

票数 0
EN

Stack Overflow用户

发布于 2022-09-04 17:23:20

首先,

代码语言:javascript
复制
@ViewBuilder content: @escaping (SwiperElement, SwiperItemResource, Dragging) -> Content

不是一个有效的语法:您需要指定一个var,在这种情况下,您不需要说@escaping

代码语言:javascript
复制
@ViewBuilder var content: (SwiperElement, SwiperItemResource, Dragging) -> Content

或者定义一个func,其中可以说闭包是@escaping

代码语言:javascript
复制
@ViewBuilder func myFunc(content: @escaping (SwiperElement, SwiperItemResource, Dragging) -> Content) -> some View { ... }

在第一种情况下,您需要声明一个变量,它存储一个名为闭包的类型。该类型有3个输入SwiperElement, SwiperItemResource, Dragging和1个Content类型的输出。

在第二种情况下,定义一个函数,它将得到一个闭包作为它的参数。关键字@escaping意味着闭包将超过函数本身(即当函数返回时,闭包可能仍在运行)。

关于选拔赛,取决于你的意思。如果要将某些参数设置为可选参数,只需将?添加到它们中:

代码语言:javascript
复制
var x(SwiperElement?, SwiperItemResource?, Dragging?) -> Content?

但是,如果您讨论的是可选的UI元素,那么您可能需要熟悉SwiftUI @State,例如解释的这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73596610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档