我有一个Objective库(我的项目是Swift源代码)。我在试着用图书馆的方法。
有一种方法如下
- (int)recognize:(NSDictionary **)dictionaryResult;
在ObjC中,只需简单地将其称为
NSDictionary *resultDictionary = [[NSDictionary alloc] init];
nRet = [crControl recognize:&resultDictionary];
然而,在Swift中,当我像下面这样调用该方法时,会发生一个错误
var dictionary = NSDictionary.init()
nRet = crControl.recognize(&dictionary)
==================
错误信息:
'AutoreleasingUnsafeMutablePointer‘不能将“AutoreleasingUnsafeMutablePointer”类型的值转换为预期的参数类型
如何在Swift中将带有“&”的空字典传递给ObjC方法?
发布于 2021-04-01 23:59:46
转换为斯威夫特似乎已将参数类型翻译为:
AutoreleasingUnsafeMutablePointer<NSDictionary?>
请注意,它是指向可选NSDictionary
的指针,因此您也应该声明参数为可选参数:
var dictionary: NSDictionary? = .init()
https://stackoverflow.com/questions/66916140
复制相似问题