ios - 为 NSURLConnection 委托(delegate)保持线程事件

标签 ios objective-c cocoa

我想将一个 block 传递给 NSOperationQueue 以在后台线程上运行。

在 block 中,我希望使用 NSURLConnection 下载一个非常大的文件 - 使用异步,因为我想在进行过程中保存以确保在网络掉线/应用程序关闭等情况下我不必重新加载整个文件。 .

我想知道如何使线程保持事件状态以服务于委托(delegate)回调。我需要设置 NSRunLoop 吗?

谢谢

最佳答案

如果你想像 AsiHttpRequest 和 AFNetworking 网络库那样设置一个长期存在的工作线程,答案是肯定的。

来自 AFNetworking 的工作线程示例代码:

+ (void)networkRequestThreadEntryPoint:(id)__unused object {
    @autoreleasepool {
        [[NSThread currentThread] setName:@"AFNetworking"];

        NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
        [runLoop addPort:[NSMachPort port] forMode:NSDefaultRunLoopMode];
        [runLoop run];
    }
}

关于ios - 为 NSURLConnection 委托(delegate)保持线程事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20346273/

相关文章:

iphone - 如何将文本从 UITextField 获取到 NSString?

ios - "The receipt could not be authenticated"- 应该再次检查吗?

ios - authPlayerWithCompletionHandler 已弃用,那么我该如何使用 authenticateHandler

objective-c - 高效访问众多 Cocoa 控件

ios - 如何将当前日期(或任何日期)创建为没有小时、分钟和秒的 NSDate?

cocoa - 如何查找文件夹中新添加的文件?

iphone - 禁用滚动 UIWebView

ios - 添加 subview 会产生布局问题

ios - 使用对象的属性作为字典的键从对象数组创建字典?

objective-c - 组合两个 NSString 和一个数字