Void] 函数-6ren">
gpt4 book ai didi

swift - 在 Swift 中调用存储在数组中的函数会产生 "Unexpected trailing closure"

转载 作者:行者123 更新时间:2023-11-30 10:12:00 25 4
gpt4 key购买 nike

我使用的是 Swift 1.2我有一个数组,用于存储我的函数/闭包。

数组声明:

var pillFunctions: [(String, position: CGPoint) -> Void]

函数声明:

private func setPill1(number: String, position: CGPoint) -> Void {
pillLabel1.text = number
pill1.frame.origin = position
}

在数组中存储函数(我的类扩展了 UIView):

required init(coder: NSCoder) {
super.init(coder: coder)
pillFunctions = [
setPill1, setPill2, setPill3, setPill4, setPill5
]
}

调用它:

pillFunctions[1]("213", position: CGPointMake(1.0, 2.0))

我是 Swift 新手,但我希望这能起作用。我在这里缺少什么?

谢谢克里斯蒂安

最佳答案

我犯了一些错误。

首先,我必须初始化数组:

var pillFunctions: [(String, position: CGPoint) -> Void] = []

我的类的 init 函数不正确:

required init(coder: NSCoder) {
super.init(coder: coder)

self.pillFunctions = [ self.setPill1, self.setPill2, self.setPill3, self.setPill4, self.setPill5 ]
}

经过这两个更改后,它开始工作。

我不确定这是最好的方法,只是因为“它有效”,并不意味着它很好。

关于swift - 在 Swift 中调用存储在数组中的函数会产生 "Unexpected trailing closure",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32463534/

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