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



我有一个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)

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

错误消息:

无法将类型为"AutoreleaseingUnsafeMutablePointer"的值转换为预期的参数类型"AutorelleaseingUnsafeTutablePointer<NSDictionary>'

如何传递带有"&"的空字典Swift中的ObjC方法?

swift的转换似乎已将参数类型转换为:

AutoreleasingUnsafeMutablePointer<NSDictionary?>

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

var dictionary: NSDictionary? = .init()

最新更新