我在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!, error: ((NSError!) -> Void)!) -> Void)!
最佳答案
这个 Swift 等价物是
SomeClass.sharedInstance().myFunction({ data in
print(data)
}) { error in
print(error)
}
如果您需要参数名称 successBlock
和 errorBlock
,则必须在 ObjC 端声明它们。
关于objective-c - 使用 Swift 中的 block 调用 Objective-C 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37414249/