새로운 프로그래머임이 있으며 매우 분실했습니다.클로저와 완료 핸들이 혼동 스럽습니다.
저는 온라인 iOS 개발자 과정을 수강 중이며 콜렉션 뷰 셀을 구성하고있었습니다. 그러나 클로저 및 완료 핸들이 사용되었으며 이전에는 언급되지 않았습니다.
import UIKit
class PersonCell: UICollectionViewCell {
@IBOutlet weak var img: UIImageView!
func configureCell(imgUrl: String) {
if let url = NSURL(string: imgUrl) {
downloadImg(url)
}
}
func downloadImg(url: NSURL) {
getDataFromURL(url) { (data, response, error) in
dispatch_async(dispatch_get_main_queue()) {() -> Void in
guard let data = data where error == nil else {return}
self.img.image = UIImage(data: data)
}
}
}
func getDataFromURL(url: NSURL, completion: ((data: NSData?, response: NSURLResponse?, error: NSError?) -> Void)) {
NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) in
completion(data: data, response: response, error: error)
} .resume()
}
}
"getDataFromURL"함수 다음에 완료 핸들러가 수행중인 작업을 설명 할 수 있습니까? 또한 클로저는 무엇을하고 있습니까? "(데이터, 응답, 오류)"가 전달됩니까? 신속하게 "데이터"는 "(데이터, 응답, 오류)"에서 NSData 등으로 가정됩니까? ?!은 "dataTaskWithURL"할 (이후 폐쇄 무엇 그것이 완료 핸들러 "
가 감사를 설정하는 것입니다
설명서를 읽으면 https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html에 도움이됩니다. – kye