在一个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/

10-11 19:36