在 Objective-C 中,我有一个完成块类定义为:
文件.h
typedef void (^MYCompletionBlock)(BOOL success, NSDictionary *result, NSError *error);
然后,在 Swift 文件中,我尝试按如下方式使用完成块:
斯威夫特.swift
class MyClass: NSObject{
...
func MyFunction() -> Void {
...
objcMethod(param1, withCompletion: {(MYCompletionBlock) -> Void in
if (success){ // Error:"Use of unresolved identifier 'success'"
}
}
...
}
...
}
但是,我不断收到错误消息:“使用未解析的标识符'成功'”。
我也尝试过以下方法:
objcMethod(param1, withCompletion: {(success:Bool, result: NSDictionary, error:NSError) -> Void in
if (success){ // Error:"Cannot convert value of type '(Bool, NSDictionary, NSError) -> Void' to expected argument type "MYCompletionBlock!"
}
}
有人可以帮我理解如何在 Swift 中正确指定 Obj-C 完成块吗?