NSOperationQueue的独特工作

Ela*_*adG 0 iphone ios

在iPhone项目中,我有一个NSOperationQueue,它处理与服务器的通信,我的appDelegate对象和上传作业,如下所示:

@interface UploadOperation : NSOperation

- (id)initWithItem:(NSDictionary*)anItem;

@end
Run Code Online (Sandbox Code Playgroud)

我正在根据用户的请求将项目推送到触发上传的NSOperationQueue.一切都很好,但我想阻止相同的上传操作发生超过一次.换句话说,如果上传未完成,请不要将同一项目推送到上传队列.

是否可以使用NSOperationQueue方法,或者我必须使用"当前在队列中的项目"数组来管理它?

fre*_*ace 9

首先确保你的NSOperation子类' hashisEqual:实现,以便尝试上传相同内容的两个实例被认为是相等的.

然后加入一个新的操作之前,首先检查是否已经有在队列中的相同操作,通过调用containsObject:通过调用返回的数组上operationsNSOperationQueue.