如何在swift中初始化闭包变量?
Posted
技术标签:
【中文标题】如何在swift中初始化闭包变量?【英文标题】:How to initialise closure variable in swift? 【发布时间】:2020-02-11 06:15:07 【问题描述】:这是我的主要结构。我试图在 listView 选择和项目时回电。
struct Home: View
@State var selectdItem : Int = 0
var body: some View
VStack
listView(onselecteditem: selectdItem in
self.selectdItem = selectdItem
)
resultView(selectedItem: self.$selectdItem)
我想在这个结构的 init 中初始化我的闭包变量。它可以在没有 init 的情况下工作,但我必须使用 init。
struct listView : View
var onSelectedItem : (Int) -> Void
init(onselecteditem : (Int) -> Void)
// I would like to initialise onSelected closure variable here.
var body : some View
List(1..<10)
item in
Text("Item \(item)").onTapGesture
self.onSelectedItem(item)
【问题讨论】:
不初始化怎么编译? @Kamran 如果我不使用 init,struct 将自动初始化,我可以使用闭包块来获取值。但由于我必须使用 init,我不知道如何在 init 块中手动分配值。 【参考方案1】:你可以将closure
变量初始化为,
init(onselecteditem : @escaping (Int) -> Void)
self.onSelectedItem = onselecteditem
【讨论】:
以上是关于如何在swift中初始化闭包变量?的主要内容,如果未能解决你的问题,请参考以下文章