UIImageView + AFNetworking maxConcurrentOperationCount

时间:2015-07-02 06:51:10

标签: ios objective-c afnetworking

这个令人敬畏的UIImageView扩展程序包含af_sharedImageRequestOperationQueue,其中最大并发数设置为

_af_sharedImageRequestOperationQueue.maxConcurrentOperationCount = NSOperationQueueDefaultMaxConcurrentOperationCount;

如何访问此私有字段并为maxConcurrentOperationCount设置自定义值? (我不想直接在CocoaPods下编辑文件)

UPD:感谢GeneratorOfOne,对我来说看起来是最好的解决方案。但是,我决定使用SDWebImage,因为它提供了开箱即用的缓存,并允许在一行代码中设置maxConcurrentOperationCount

2 个答案:

答案 0 :(得分:2)

这是一个具有静态NSOperationQueue的私有方法。你可以直接去捅代码,这对改变一些librarues的现有代码是不利的。我建议你创建一个新的UIImageView类,你可以在其中公开这个方法然后你就可以设置maxConcurrentOperationCount。

像,

@interface UIImageView(MyExtension)
  + (NSOperationQueue *)af_sharedImageRequestOperationQueue;
@end

@implementation UIImageView(MyExtension)
  + (void)load {
     NSOperationQueue *queue = [self af_sharedImageRequestOperationQueue];
    queue.maxConcurrentOperationCount = 5;
  }
@end

然后,您现在可以在类中包含扩展名并设置其maxConcurrentOperationCount。

答案 1 :(得分:0)

如定义中所述,NSOperationQueueDefaultMaxConcurrentOperationCount用于根据系统条件返回允许的正确并发队列数。

你为什么要限制它?