esh*_*esh 17 macos nsurlsession ios8
var session = NSURLSession.sharedSession()
session.dataTaskWithRequest(urlRequest,
completionHandler: {(data: NSData!,
response: NSURLResponse!,
error: NSError!) in
println(data)
println(response)
println(error)
})
Run Code Online (Sandbox Code Playgroud)
所以我正在发出这个请求,永远不会调用完成块.
怎么了?
此外,我尝试了synchronous and asynchronous form同样的请求,NSURLConnection它工作得很好.
编辑:
我尝试将dataTask变量分配给session.dataTaskWithRequest并在之后显示.它说这个<__NSCFLocalDataTask: 0xb41bda0> { suspended }暂停?为什么?
esh*_*esh 53
所以我试着这样称呼它
session.dataTaskWithRequest(urlRequest,
completionHandler: {(data: NSData!,
response: NSURLResponse!,
error: NSError!) in
print(data)
print(response)
print(error)
}).resume()
Run Code Online (Sandbox Code Playgroud)
它奏效了.
好像我必须调用resume()默认的暂停会话任务.
小智 7
你在玩游乐场吗?
如果你是,你应该小心包括:
XCPSetExecutionShouldContinueIndefinitely(continueIndefinitely: true)
Run Code Online (Sandbox Code Playgroud)
为了让操场等待回调
我面临同样的问题,我通过以下方式解决了它
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * data, NSURLResponse * response, NSError * error) {
if (!error)
{
NSLog(@"Data is %@",data);
NSLog(@"Response is %@",response);
NSLog(@"Error is %@",error);
}
}];
[dataTask resume];
Run Code Online (Sandbox Code Playgroud)
并检查您是否已添加到App Transport Security Settings您的info.plist.
| 归档时间: |
|
| 查看次数: |
13251 次 |
| 最近记录: |