1

我想在后台线程中异步加载一些东西(大)(与 NSOperation 一起使用)。

经过多次搜索,我遇到了两个选项:第一个是使用:

CFRunLoopRun()

在这个链接中解释得很精彩: http ://www.russellj.co.uk/blog/2011/07/09/nsurlconnection-in-a-background-thread/

第二个是使用:

NSPort* port = [NSPort port];
NSRunLoop* rl = [NSRunLoop currentRunLoop]; // Get the runloop
rl addPort:port forMode:NSDefaultRunLoopMode];

在这个链接中解释得很好:http: //www.cocoaintheshell.com/2011/04/nsurlconnection-synchronous-asynchronous/

我真的想使用第一个选项,因为它非常优雅和可读性。但恐怕我不太了解这两种方法之间的区别。

感谢帮助。

4

1 回答 1

1

如果适合您的需要,我会推荐以下内置方法。它易于使用且可靠。

  • (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue )queue completionHandler:(void (^)(NSURLResponse , NSData*, NSError*))handler
于 2013-07-22T14:28:43.540 回答