【问题标题】:NSURLSession performSegueWithIdentifier not runningNSURLSession performSegueWithIdentifier 未运行
【发布时间】:2014-06-18 21:38:21
【问题描述】:

我有以下代码,但不确定它为什么不运行:

 NSURLSession *session = [NSURLSession sharedSession];
 NSURLSessionDataTask *dataTask = [session dataTaskWithURL:
 [NSURL        URLWithString:myURLString] completionHandler:^
 (NSData *data, NSURLResponse *response, NSError *error) 
 {NSDictionary *json =   
  [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

 [self performSegueWithIdentifier:@"login" sender:self];}];


 [dataTask resume];

preformSegueWithIdentifier 在括号外有效,但不在括号内。但是我使用 NSUrlConnection 做了类似的事情,效果很好。我是 NSURLSession 的新手,知道为什么 performSegueWithIdentifier 不在调用中运行。

有什么想法吗?

【问题讨论】:

标签: ios segue nsurlsession


【解决方案1】:

如果你按照你的方式创建 NSURLSession 对象,它会创建一个新的串行操作队列,它不是主队列。 dataTaskWithURL: 方法的完成处理程序在会话的队列上运行,因此它不起作用,因为您试图在后台队列上执行 UI 任务。要修复它,请像这样创建会话,

NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate: nil delegateQueue: [NSOperationQueue mainQueue]];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    相关资源
    最近更新 更多