Swift Multi-arg Selector没有被调用

这是在Objective-C中正常运行的代码,

[dataFetcher fetchDataWithRequest:authorizeRequest delegate:self didFinishSelector:@selector(didReceiveRequestToken:data:) didFailSelector:@selector(didFailOAuth:error:)]; 

它在Objective-C中调用这两种方法。

但是当我在Swift中使用Selector时,它不起作用。

 dataFetcher?.fetchDataWithRequest(requestTokenRequest, delegate: self, didFinishSelector:Selector("didReceiveRequestToken:data:"), didFailSelector: Selector("didFailOAuth:error:")) 

这里我打电话的方法,

 func didReceiveRequestToken(ticket:OAServiceTicket,data:NSData){ } 

我已经使用StackOverFlow给出的解决scheme,但他们没有为我工作。

提前致谢。

你的方法有点改变:

 func didReceiveRequestToken(ticket:OAServiceTicket,andData data:NSData){ } 

select器是:“didReceiveRequestToken:andData:”

你的来电:

 dataFetcher?.fetchDataWithRequest(requestTokenRequest, delegate: self, didFinishSelector:"didReceiveRequestToken:andData:", didFailSelector:"didFailOAuth:andError:") // Make the same with this. 

确保你的代码有这个方法。

可能的是,您忘记在方法实现前使用@objc

 @objc func didReceiveRequestToken(ticket:OAServiceTicket,data:NSData) { .... 

当目标方法没有在从NSObject派生的类中定义时(即使用纯Swift类),这是必需的。