以下两个问题都是在维护 NSOperationQueue 和 NSInvocableOperation 的上下文中提出的。
由于我已经使用这个概念来下载多个视频,因此在下载视频完成后,如何从 NSOperationQueue 中删除/释放添加的 NSInitationOperation ?
另外,如果我想在下载过程中停止下载特定视频,该怎么办?
下载视频完成后,如何从 NSOperationQueue 中删除/释放添加的 NSInitationOperation?
该操作完成后会自动从队列中删除,即当 -已完成 http://developer.apple.com/library/ios/documentation/cocoa/reference/NSOperation_class/Reference/Reference.html#//apple_ref/doc/uid/TP40004591-RH2-SW12返回真。
另外,如果我想在下载过程中停止下载特定视频,该怎么办?
当您想中途停止操作时,必须向其发送-cancel http://developer.apple.com/library/ios/documentation/cocoa/reference/NSOperation_class/Reference/Reference.html#//apple_ref/doc/uid/TP40004591-RH2-SW8信息。However这不会神奇地停止操作的运行。您的任务需要定期检查它是否被取消,如果被取消则自行完成。因此,您需要分块下载视频,并在每个块后检查操作的取消状态。以下伪代码可能会有所帮助:
while (![myOperation isCancelled] && thereIsMoreData)
{
download a chunk of data and save it
}
例如,这意味着您不能使用NSURLConnection
's -sendSynchronousRequest:returningResponse:error:
获取数据,因为直到所有数据下载完成后,它才能检查操作的取消状态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)