我正在为网络创建一个类,说NetworkManager是一个单例。我希望此类处理网络请求。
我有两个NSOperationQueues
,一个用于并行请求,其中未设置numberofConcurrent Operations
。对于顺序队列,请将setMaxConcurrentOperationCount
设置为1。我认为,第二个NSOperation
请求将在第一个请求执行结束后执行。它仅运行处理网络请求的第一个NSOperation
。如果我必须顺序处理请求,该怎么办。下面是示例代码:
NSOperation *networkOperation = [[NetworkOperation alloc]initWithRequest:request networkRequest:networkRequest];
if(!sequentialQueue){
sequentialQueue = [[NSOperationQueue alloc]init];
[sequentialQueue setMaxConcurrentOperationCount:1];
}
[sequentialQueue addOperation:networkOperation];
请帮忙。
最佳答案
您可以继承NSOperationQueue
的子类,并像这样覆盖- addOperation:
方法。
- (void)addOperation:(NSOperation *)operation {
// check whether the queue has at least one operation, you can also check for nil
if ([[self operations] count] > 0) [operation addDependency:[self.operations lastObject]];
[super addOperation:operation];
}