如何将带有“&”的字典参数传递给 Swift 中的 Objective-C 方法

How to pass a dictionary parameters with '&' to Objective-C method in Swift

我有一个 Objective-C 库(我的项目是 Swift 源代码)。 我正在尝试使用库的方法。

有如下方法

- (int)recognize:(NSDictionary **)dictionaryResult;

在 ObjC 中,只需像这样称呼它

NSDictionary *resultDictionary = [[NSDictionary alloc] init];
nRet = [crControl recognize:&resultDictionary];

但是在Swift中,当我调用下面的方法时,出现错误

var dictionary = NSDictionary.init()
nRet = crControl.recognize(&dictionary)

==================

错误信息:

Cannot convert value of type 'AutoreleasingUnsafeMutablePointer' to expected argument type 'AutoreleasingUnsafeMutablePointer<NSDictionary?>'

如何将带有“&”的空字典传递给 Swift 中的 ObjC 方法?

翻译成swift好像把参数类型翻译成了:

AutoreleasingUnsafeMutablePointer<NSDictionary?>

请注意,它是一个指向 可选 NSDictionary 的指针,因此您也应该将参数声明为可选:

var dictionary: NSDictionary? = .init()