我使用此代码创建了一个Buttons类
http://nathandemick.com/programming/tutorial/2014/09/23/buttons-sprite-kit-using-swift.html
但操作变量没有参数 如果我将init和动作改为
var action: (id: Int) -> Void
之后,我无法在touchesEnded方法
中执行该功能func test(){
println("test");
}
func testTwo(id: Int){
println("testTwo");
}
var action: () -> Void;
action = test
action() // prints test
var actionTwo: (id: Int) -> Void;
actionTwo = testTwo
// This work
actionTwo(id: 9); // prints testTwo
// But I want this to work
actionTwo();
答案 0 :(得分:0)
您需要为函数提供一个定义,使整数参数可选。
func testTwo(id: Int? = nil) {
print("something")
}
答案 1 :(得分:0)
如果使用可变数量的参数定义函数,例如
func testTwo(args:Int...) {
println("testTwo")
// enumerate over arguments
for arg in args {
println (arg)
}
}
然后使用
正确定义/分配变量 var actionTwo: (args:Int...) -> Void
actionTwo = testTwo
您可以通过
调用带/不带参数的函数 // This works
actionTwo(args:9)
// and this also works
actionTwo()
// and, BTW, this works as well
actionTwo(args:1, 2, 3, 4, 5)