如何在不对这些funcs名称进行硬编码的情况下从Swift类实例中获取前缀为某个名称的func数组?
e.g。
class Dialog {
init() {
}
func stepOne(session: Session) {
...
}
func stepTwo(session: Session) {
...
}
func stepThree(session: Session) {
...
}
func someOtherFunc() {
...
}
func steps() -> [(Session) -> Void] {
// should return [stepOne, stepTwo, stepThree];
}
}
答案 0 :(得分:0)
这些功能必须来自某个地方。它们不一定必须在Dialog
中定义;它们可以是func steps()
内的局部变量。例如:
func steps() -> [(Session) -> Void] {
var allSteps: [(Session) -> Void] = []
for i in 0..<3 {
let currentStep: (Session) -> Void = { session in
print("Executing step \(i)")
}
allSteps.append(currentStep)
}
return allSteps
}