我想将一个 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/