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