Nhiều phương thức Cocoa và CocoaTouch có các lệnh gọi lại hoàn thành được thực hiện dưới dạng các khối trong Objective-C và Closures trong Swift. Tuy nhiên, khi thử những thứ này trong Playground, quá trình hoàn thành sẽ không bao giờ được gọi. Ví dụ:
// Playground - noun: a place where people can play
import Cocoa
import XCPlayground
let url = NSURL(string: "http://stackoverflow.com")
let request = NSURLRequest(URL: url)
NSURLConnection.sendAsynchronousRequest(request, queue:NSOperationQueue.currentQueue() {
response, maybeData, error in
// This block never gets called?
if let data = maybeData {
let contents = NSString(data:data, encoding:NSUTF8StringEncoding)
println(contents)
} else {
println(error.localizedDescription)
}
}
Tôi có thể thấy đầu ra của bảng điều khiển trong dòng thời gian Playground của mình, nhưng printlntrong khối hoàn thành của tôi không bao giờ được gọi ...