ios - 从 NSOperationQueue 获取底层的 dispatch_queue_t

标签 ios grand-central-dispatch afnetworking nsoperationqueue

我似乎对 dispatch_queue_tNSOperationQueue 队列有些混淆。

默认情况下,AFNetworking 的AFImageRequestOperation 将在应用程序的主线程上执行成功回调 block 。要更改此设置,AFHTTPRequestOperation 具有属性 successCallbackQueue,您可以选择在哪个队列上运行回调。

我正在尝试在已经执行 HTTP 请求的相同后台队列/后台线程上执行成功回调。 NSOperationQueue 而不是返回主线程> 运行 HTTP 请求的也应该运行回调,因为我需要使用一些返回的图像进行一些繁重的计算。

我的第一个尝试是将 successCallbackQueue 设置为运行 AFImageRequestOperationNSOperationQueue 实例。但是,successCallbackQueue 属性的类型为 dispatch_queue_t,因此我需要一种方法来获取 NSOperation 的底层 dispatch_queue_t 实例,如果有的话。

这可能吗,还是我需要创建一个单独的 dispatch_queue_t

我问的原因:AFNetworking 继承自 NSOperation 有点奇怪,但希望我们使用 dispatch_queue_t 队列进行回调。混合了两种范式 dispatch_queue_tNSOperationQueue

感谢任何提示!

最佳答案

没有这样的东西,NSOperationQueuedispatch_queue_t不是一一对应的,两个API中的队列概念很不一样不同(例如,NSOperationQueue 不像 GCD 那样具有严格的 FIFO 队列)。

NSOperationQueue 用于执行代码的唯一调度队列是默认优先级全局并发队列。

关于ios - 从 NSOperationQueue 获取底层的 dispatch_queue_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16563410/

相关文章:

ios - NSURLConnection 仅在第二次尝试时进行身份验证

ios - 如何将 'animationImages' 方法与以编程方式创建的 UIImageView 一起使用

ios - 使用 NSTimer 在屏幕上移动对象

ios - 等待多个异步下载任务

ios - applicationDidBecomeActive 方法阻塞了我的 UI

ios - 如何使用 AFNetworking 比较 SSL 证书

iOS - 编译依赖

iphone - ViewController 上的本地通知

ios - 构建在 TestFlight 中不可见

objective-c - 单例上的多个类方法以避免子类?