在 objective-c 中,我可以定义自己的块类型:
typedef void (^myBlock)(id param1, id param2, BOOL param3);
然后在其他地方(例如另一个类)定义块体,以使用传递的值执行某些操作:
myBlock block = ^(id param1, id param2, BOOL param3) {
if (param3){
NSLog("parameters:%@,%@",param1,param2)
}};
要在 Swift 中执行相同操作,我使用typealias
定义了我的块:
typealias myBlock = (param1:AnyObject, param2:AnyObject, param3:Bool) -> ()
但我不能简单地称之为:
let block: myBlock = {param1,param2,param3 in
if (param3){
print(param1,param2)
}}
并且有一个警告:
永远不会使用不可变值'block'的初始化;考虑 替换为“_”或删除它。
如何调用myBlock
并在Swift中定义它的正文?
提前致谢!
答案 0 :(得分:1)
我认为出现警告是因为您没有在代码中的任何位置使用“阻止”变量。
在声明“block”变量之后,尝试在代码中的某处使用它。
答案 1 :(得分:0)