在iphone中线程化

时间:2010-09-08 11:42:33

标签: iphone objective-c

我使用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]但它不起作用。

我如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

如果我没有错误地使用NSOperations从网络加载数据,则不建议。您应该使用NSURLConnection提供的异步加载。

答案 1 :(得分:1)

实现您自己的NSOperation子类。在队列上调用cancelAllOperations时,NSOperation设置了isCancelled属性。