ios - AFNetworking NS线程

标签 ios afnetworking nsthread

我正在研究 AFNetworking 并注意到它创建了自己的 NSThread。据我所知,苹果现在不鼓励使用 NSThread。这是 AFNetworking 创建自己的 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;
}

最佳答案

您应该在 AFNetworking Github Issues page 上发布此问题如果你想深入了解开发者的计划,但在回答你的问题时,Apple 的顾问关于 Migrating Away From Threads是因为编写 NSThread 代码很复杂,而操作队列和调度队列是编写多线程代码的一种更简单、更安全的方法。他们并不是(至少在我看来)说你不能使用 NSThread,只是说通常有更简单的方法来完成我们过去使用线程所做的事情。

底线,使用 NSURLConnection在后台队列中需要小心。如果您只是从后台队列创建一个简单的、基于委托(delegate)的连接,您会发现您的委托(delegate)方法可能不会被调用。 AFNetworking 技术是解决此问题的完全可接受的解决方案。

关于ios - AFNetworking NS线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16243990/

相关文章:

ios - Xcode 9 上的 GoogleMaps 崩溃

ios - 具有企业帐户的 IPA 在安装时显示警告消息

objective-c - 在 AFNetworking 中暂停下载 - objective-c

ios - AFNetworking响应错误仅适用于特定URL

iphone - iOS 在线程中获取 UITextField 文本,显示 '_WebThreadLockFromAnyThread'

ios - Objective-C 查找方法的调用者

ios - 64 位 BOOL 值

ios - AFNetworking 发送带有请求的 header

objective-c - Objective-C 和 iOS : running a timer? NSTimer/线程/NSDate/等

Xcode 4.2 中的 iOS 核心图