在一个iPhone项目中,我的appDelegate对象和一个上传作业上有一个NSOperationQueue,用于处理与服务器的通信,如下所示:
@interface UploadOperation : NSOperation
- (id)initWithItem:(NSDictionary*)anItem;
@end
我根据用户的请求将项目推送到NSOperationQueue,后者触发上传。一切正常,但我想防止同一上传操作发生1次以上。
换句话说,如果上传未完成,请勿将同一项目推送到上传队列中。
NSOperationQueue方法是否可能,或者我必须使用“当前队列中的项目”数组来自己管理它?
最佳答案
没错,您需要使用队列中当前使用的自己的项目数组来管理它:
NSArray *allQueueItems = ....;
NSMutableArray *queueItems = [NSMutableArray array];
for (NSOperation *item in allQueueItems) {
[self.operationQueue addOperation:item];
[queueItems addObject:item];
}
关于iphone - NSOperationQueue的唯一作业,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7621425/