Swift 使用';连接(didReceive:)&x27;
此代码返回错误: “connection(uquo:didReceive:)”的用法不明确 我参考了GitHub上Apple的官方进化线程,我尊重语法,但不起作用:Swift 使用';连接(didReceive:)&x27;,swift,swift3,nsurlconnectiondelegate,xcode8,Swift,Swift3,Nsurlconnectiondelegate,Xcode8,此代码返回错误: “connection(uquo:didReceive:)”的用法不明确 我参考了GitHub上Apple的官方进化线程,我尊重语法,但不起作用: NSURLConnectionDataDelegate是一种协议,您不能使用NSURLConnectionDataDelegate.connection(uu:didReceive:)创建选择器,您必须使用NSURLConnectionDataDelegate的实现,如: static let didReceiveResponseS
NSURLConnectionDataDelegate
是一种协议,您不能使用NSURLConnectionDataDelegate.connection(uu:didReceive:)
创建选择器,您必须使用NSURLConnectionDataDelegate的实现,如:
static let didReceiveResponseSelector : Selector = #selector((NSURLConnectionDataDelegate.connection(_:didReceive:)) as (NSURLConnectionDataDelegate) ->(NSURLConnection,URLResponse) -> ())
然后您可以创建如下选择器:
class YourDelegateImplementation: NSURLConnectionDataDelegate {
public func connection(_ connection: NSURLConnection, didReceive data: Data) {
}
}
不要强制转换选择器:
let yourDelegate: YourDelegateImplementation = YourDelegateImplementation()
let yourSelector : Selector = #selector(yourDelegate.connection(_:didReceive:))
还值得注意的是,委托函数connection(\uconnection:NSURLConnection,didReceive challenge:URLAuthenticationChallenge)
已被弃用,取而代之的是连接(\uconnection:NSURLConnection,willSendRequestFor challenge:URLAuthenticationChallenge)
已解决,只需添加“:
不,其他委托也可以,因此此委托也必须可以,并且您的代码不在此#选择器上工作(NSURLConnectionDataDelegate.ConnectionIDFinishLoading(35;:)不幸的是,使用
as
强制转换消除歧义对协议中声明的方法不起作用。请检查。很抱歉,我需要didReceive数据的选择器:数据您混淆了NSURLConnectionDataDelegate和NSURLConnectionLegate
let didReceiveResponseSelector = #selector(NSURLConnectionDelegate.connection(_:didReceive:))
static let didReceiveResponseSelector : Selector = #selector((NSURLConnectionDataDelegate.connection(_:didReceive:)) as ((NSURLConnectionDataDelegate) -> (NSURLConnection,URLResponse) -> void)?)