以下是 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上提供的解决方案,但它们对我没有用。
先谢谢。
答案 0 :(得分:1)
你的方法有点改变:
func didReceiveRequestToken(ticket:OAServiceTicket,andData data:NSData){
}
选择器是:“didReceiveRequestToken:andData:”
您的电话:
dataFetcher?.fetchDataWithRequest(requestTokenRequest,
delegate: self,
didFinishSelector:"didReceiveRequestToken:andData:",
didFailSelector:"didFailOAuth:andError:") // Make the same with this.
确保您的代码具有此方法。
答案 1 :(得分:0)
可能您忘记在方法实现前使用@objc
:
@objc func didReceiveRequestToken(ticket:OAServiceTicket,data:NSData) {
....
当在NSObject
派生的类中未定义目标方法时(即使用纯Swift类),这是必需的。