我正在使用一个用objective C编写的库MDWamp,它具有以下类型的属性
@property (nonatomic, strong) void (^deferredWampCRASigningBlock)( NSString *challange, void(^finishBLock)(NSString *signature) );
这是SWIFT的签名
public var deferredWampCRASigningBlock: ((String!, ((String!) -> Void)!) -> Void)!
当我尝试以下面的方式在swift中示例化它时
self.wamp?.config.deferredWampCRASigningBlock?(str : String , { (str2 : String) -> Void in
})
但我得到这个错误
无法将类型'String.Type'的值转换为预期的参数类型'String!'
如有任何建议,我们将不胜感激。
5条答案
按热度按时间afdcj2ne1#
这意味着您正在传递数据类型。请传递值。
jfgube3f2#
让我们了解一下
deferredWampCRASigningBlock
是什么:这是一个void函数,它包含两个内容:
所以当你调用它的时候,你必须传递给它那些东西,一个字符串和一个函数。
从你的一些评论来看,你似乎不知道
challenge
在这一点上应该是什么。这表明你不应该调用这个函数。这个函数是由程序中 * 不 * 知道challenge
是什么的部分调用的。混淆可能与“当我试图示例化它时”有关。您给出的代码并没有示例化任何东西。它正在尝试调用函数。也许您真正的意思是创建函数并对其赋值:
amrnrhlw3#
试试这个
r6l8ljro4#
您传递的是
String.Type
,而不是字符串值。而不是:
它应该是:
1aaf6o9v5#