对swift中回调的空调用。它如何有用?
我浏览了AlamoFire库代码,了解了更多关于它的信息,我发现了以下定义:对swift中回调的空调用。它如何有用?,swift,Swift,我浏览了AlamoFire库代码,了解了更多关于它的信息,我发现了以下定义: var dataTaskDidReceiveData: ((NSURLSession!, NSURLSessionDataTask!, NSData!) -> Void)? 我想它定义了dataTaskDidReceiveData是一个带有一些参数且没有返回的回调 然后我发现这个回调是以一种我无法理解的“奇怪”方式使用的: func URLSession(session: NSURLSession!,
var dataTaskDidReceiveData: ((NSURLSession!, NSURLSessionDataTask!, NSData!) -> Void)?
我想它定义了dataTaskDidReceiveData是一个带有一些参数且没有返回的回调
然后我发现这个回调是以一种我无法理解的“奇怪”方式使用的:
func URLSession(session: NSURLSession!, dataTask: NSURLSessionDataTask!, didReceiveData data: NSData!) {
if let delegate = self[dataTask] as? Request.DataTaskDelegate {
delegate.URLSession(session, dataTask: dataTask, didReceiveData: data)
}
dataTaskDidReceiveData?(session, dataTask, data)//??????
}
这个电话到底是怎么工作的
dataTaskDidReceiveData?(session, dataTask, data)//??????
dataTaskDidReceiveData
定义为可选闭包<代码>?是可选的链接运算符。因此dataTaskDidReceiveData?(会话,dataTask,data)
的内容如下:如果dataTaskDidReceiveData
不是零,则调用dataTaskDidReceiveData
闭包,否则不执行任何操作 我认为你应该接受下面的答案。