如何使用'&';Swift中的Objective-C方法
我有一个Objective-C库(我的项目是Swift source)。 我正在尝试使用图书馆的方法 有一种方法如下如何使用'&';Swift中的Objective-C方法,swift,objective-c,swift5,Swift,Objective C,Swift5,我有一个Objective-C库(我的项目是Swift source)。 我正在尝试使用图书馆的方法 有一种方法如下 - (int)recognize:(NSDictionary **)dictionaryResult; 在ObjC中,只需将其称为 NSDictionary *resultDictionary = [[NSDictionary alloc] init]; nRet = [crControl recognize:&resultDictionary]; 然而,在Swift
- (int)recognize:(NSDictionary **)dictionaryResult;
在ObjC中,只需将其称为
NSDictionary *resultDictionary = [[NSDictionary alloc] init];
nRet = [crControl recognize:&resultDictionary];
然而,在Swift中,当我调用下面这样的方法时,会发生错误
var dictionary = NSDictionary.init()
nRet = crControl.recognize(&dictionary)
==================
错误消息:
无法将“AutoReleasingUnsafemtablePointer”类型的值转换为预期的参数类型“AutoReleasingUnsafemtablePointer”
如何将带有“&”的空字典传递给Swift中的ObjC方法?对Swift的转换似乎已将参数类型转换为:
AutoreleasingUnsafeMutablePointer<NSDictionary?>
我认为
NSDictionary*resultDictionary代码>就足够了,不需要初始化它。我认为var dictionary:NSDictionary?=nil
就足够了,不需要初始化它。@Cy-4AH问题中的Objective-C代码确实初始化了它,我不知道Recognite
是否能与NULL
s一起工作。@Sweeper是的,当然,我们不知道Recognite
方法的确切实现。我的评论更多是针对问题作者的。
var dictionary: NSDictionary? = .init()