我在Objective-C
中有一个方法如下:
- (void)myFunction:(void (^)(NSArray *data))successBlock error:(void (^)(NSError *error))errorBlock {
//...//
successBlock(someData);
}
我想从Swift
调用它,但我无法理解语法。
无论我尝试什么,都会抱怨:
SomeClass.sharedInstance().myFunction(
successBlock: {
(data) in
print(data)
},
error: {
(error) in
print(error)
})
无法调用非功能类型的值
'((((([AnyObject]!) - > Void!,错误:((NSError!) - > Void)!) - > Void)!
答案 0 :(得分:0)
这个Swift等价物是
SomeClass.sharedInstance().myFunction({ data in
print(data)
}) { error in
print(error)
}
如果您需要参数名称successBlock
和errorBlock
,则必须在ObjC侧声明它们。