我使用NSoperationQueue从服务器加载歌曲。
单击diff-diff按钮时执行此代码。
NSOperationQueue *queue;
NSInvocationOperation *operation = [[NSInvocationOperation alloc]
initWithTarget:self selector:@selector(loadImage)object:nil];
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
[queue addOperation:operation];
问题是当用户点击ie.Rama.aac然后在这个持续时间内加载继续,如果他点击krishna.aac然后这个过程也进入那个队列。并且存在冲突。
用户终于要求krishna但是在结果中首先下载rama.aac然后krishna.aac。
我正在使用[queue cancelAllOperations]但它不起作用。
我如何解决这个问题?
答案 0 :(得分:1)
如果我没有错误地使用NSOperations从网络加载数据,则不建议。您应该使用NSURLConnection提供的异步加载。
答案 1 :(得分:1)
实现您自己的NSOperation子类。在队列上调用cancelAllOperations时,NSOperation设置了isCancelled属性。