如何将带有“&”的字典参数传递给 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()
我有一个 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()