我有一个闭包数组,在一个类中(我声明这是一个UIViewController是一个表视图),并且想要设置动作为我的一个单元格基于闭包。这是我的代码:Swift数组的闭包,'Int'不是'()的子类型
var actionItem : (Int)->Void = {
(index: Int)->Void in
if(self.pickedRoles[index] == "___") {
self.pickedRoles[index] = self.roles[index];
} else {
self.pickedRoles[index] = "___";
}
}
var roleActions : Array<(Int)->Void> = [{
actionItem(0);
}, {
actionItem(1);
}, {
actionItem(2);
}, {
actionItem(3);
}, {
actionItem(4);
}];
actionItem
是我的闭合,pickedRoles
是一个类变量这是一个字符串数组,类似地roles
。我想roleActions
表示当用户选择一个角色会发生什么,但在该行宣布roleActions
,我得到一个错误,指出:
'Int' is not a subtype of '()'
我该怎么做才能解决这个问题?
谢谢你的明确解释,这是非常有道理的。所以解决办法就像@Antonio建议有一个Void-> Void数组? – BHendricks
我的问题是,我没有你想要做的事情的世俗观念。为什么你会想要一个闭包数组,每个闭包包含一个已经被调用__的_function?你是否知道你在做什么? :) – matt
我想切换下拉列表和实际值(这是3个字符串)之间的字符串的PickRoles数组。我将这些操作附加为每个按钮的目标操作操作。这有任何意义吗? – BHendricks