0

我有一个 iPad 应用程序,我需要在其中向服务器发送一些数据,如果获得成功响应,数据将从我的缓存文件夹中删除。我目前正在使用 asihttp 网络队列来执行此操作并在一个 viewcontroller 中正常工作。但实际上我想要的是在应用程序中处理发送而不是在单个视图控制器中并处理响应。目前,当我移动到下一个视图控制器时,我需要停止网络队列。有什么方法可以将其作为背景线程,任何样本都可以非常感谢。

4

2 回答 2

0

首先,您需要迁移到更新的框架,因为不再支持 ASIHTTP。我建议您为此目的查看AFNetworking 。该框架允许您使用 NSOperation 子类(如 AFJSONRequestOperation)来执行您的请求。NSOperations 可以取消。请注意,如果 NSOperation 对象已经开始,它的取消可能不会立即发生。此外,为了更好的性能、最佳实践和其他一些非常好的理由,您应该使用 NSOperationQueue 对象来管理您的请求。AFNetworking 提供了一个方便的队列供您使用(建议),但您也可以创建自己的队列。

于 2013-06-14T09:21:12.640 回答
0

您可以将 NSURLConnection 与 GCD 块结合使用,在单独的线程中运行该进程。

dispatch_queue_t downloadQueue = dispatch_queue_create("attendanceLoader", nil);
dispatch_async(downloadQueue, ^{
     //YOUR NETWORK CALL HERE
    dispatch_async(dispatch_get_main_queue(), ^{
       //AFTER NETWORK CALL IS COMPLETE
       //DELETE CACHE HERE

    });

});//end of GCD
于 2013-06-14T16:32:34.297 回答