JSON
ファイルをWebサーバーからロードしようとしています。リクエストを開始する方法は次のとおりです。なぜNSURLSession.dataTaskWithURL()は私の補完ハンドラを呼び出しませんか?
let url:NSURL? = NSURL(string: lookupUrlFragment + query)
// Check if an actual url object was created
if let actualUrl = url {
// Create a default NSURLSessionConfiguration
let sessionConfig:NSURLSessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration()
// Create a default session
let session:NSURLSession = NSURLSession(configuration: sessionConfig)
session.dataTaskWithURL(actualUrl, completionHandler: {
(data:NSData?, response:NSURLResponse?, error:NSError?) in
NSLog("Got data = \(data)")
NSLog("Got response = \(response)")
NSLog("Got error = \(error)")
self.searchResults = data
self.delegate?.searchResultsAreReady()
})
}
私はこのコードをデバッガでステップアップしました。 dataTaskWithURL()
の呼び出しになると、実際のURLの値が正しいことになります。私がウェブブラウザからそれを打つと、JSON
ファイルが得られます。しかし、補完ハンドラは決して呼び出されません。完了ハンドラで設定したブレークポイントで停止することはなく、デバッガのログに出力は表示されません。
私はこれを、クロージャではなく別の関数で完了ハンドラで試しましたが、動作は同じです。
私の補完ハンドラが呼び出されない理由を誰にでも教えてください。
ありがとうございます!!!!!! – Thom