我正在使用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的新手,但我希望这会奏效。 我在这里缺少什么?
由于 克里斯蒂安
答案 0 :(得分:1)
我犯了几个错误。
首先,我必须初始化数组:
var pillFunctions: [(String, position: CGPoint) -> Void] = []
我班级的初始化功能不正确:
required init(coder: NSCoder) {
super.init(coder: coder)
self.pillFunctions = [ self.setPill1, self.setPill2, self.setPill3, self.setPill4, self.setPill5 ]
}
经过这两次更改后,它开始起作用。
我不确定这是最好的方法,只是因为“它有效”,并不意味着它很好。