0

我有个问题。我在dispatch_async. 但是在callMethod2不同的对象中,我正在使用[NSURLConnection sendAsynchronousRequest. 但是上传后,它没有显示我的响应。(但是,当我在没有 dispatch_async 的情况下调用 callMethod2 时,效果很好)。问题可能出在哪里?

dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){
    [offline callMethod1];
    [offline callMethod2];
});

上传图片

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue currentQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {

    NSLog("Never show me me this log");

}];
4

1 回答 1

1

您在不是主线程的线程上调用 NSLog(也称为异步调用),因此您不会看到 NSLog,因为它必须在主线程上运行。

您可以让完成块在完成后以其他方式通知您。我发现的最好方法是使用https://github.com/kseebaldt/deferred,它允许你发送一个承诺说(我保证我会做这件事并在完成时通知你)。

于 2015-07-22T01:00:31.220 回答