我正在研究AFNetworking,并注意到它创建了自己的NSThread。据我所知,苹果现在不鼓励使用NSThread。对于AFNetworking创建Is自己的NSThread,这是可接受的实践吗?在未来的版本中,这一点会改变吗?
谢谢
+ (NSThread *)networkRequestThread {
static NSThread *_networkRequestThread = nil;
static dispatch_once_t oncePredicate;
dispatch_once(&oncePredicate, ^{
_networkRequestThread = [[NSThread alloc] initWithTarget:self selector:@selector(networkRequestThreadEntryPoint:) object:nil];
[_networkRequestThread start];
});
return _networkRequestThread;
}发布于 2013-04-27 04:40:31
如果你想深入了解开发人员的计划,你应该在AFNetworking Github Issues page上发布这个问题,但在回答你的问题时,苹果公司关于Migrating Away From Threads的建议是基于这样一个事实:编写NSThread代码很复杂,操作队列和调度队列是编写多线程代码的一种更容易、更安全的方法。他们并不是说你不能使用NSThread (至少在我看来是这样),只是说通常有更简单的方法来做我们过去对线程所做的事情。
底线是,在后台队列中使用NSURLConnection需要小心。如果您只是从后台队列创建一个简单的、基于委托的连接,您会发现您的委托方法可能无法调用。对于这个问题,AFNetworking技术是一个完全可以接受的解决方案。
https://stackoverflow.com/questions/16243990
复制相似问题