我正在构建一个 ios 应用程序,我需要在其中控制多个文件(图像但不仅仅是图像)的下载。我需要优先考虑文件的下载,这可能会随着用户与应用程序的交互而改变。
我有任何方法可以设置操作存储在 nsoperationqueue 中的顺序。我正在寻找的是具有 nsoperationqueue 内置功能的堆数据结构。
实现这一目标的最佳方法是什么?
我正在构建一个 ios 应用程序,我需要在其中控制多个文件(图像但不仅仅是图像)的下载。我需要优先考虑文件的下载,这可能会随着用户与应用程序的交互而改变。
我有任何方法可以设置操作存储在 nsoperationqueue 中的顺序。我正在寻找的是具有 nsoperationqueue 内置功能的堆数据结构。
实现这一目标的最佳方法是什么?
有一种setQueueProperty
方法NSOperation
可以帮助你。来自苹果文档:
在操作队列中使用时设置操作的优先级。您应该仅根据需要使用优先级值来对非相关操作的相对优先级进行分类。不应该使用优先级值来实现不同操作对象之间的依赖关系管理。如果需要在操作之间建立依赖关系,请改用 addDependency: 方法。
如果您尝试指定一个与定义的常量之一不匹配的优先级值,此方法会自动将您指定的值调整为 NSOperationQueuePriorityNormal 优先级,并在第一个有效常量值处停止。例如,如果您指定值 -10,此方法将调整该值以匹配 NSOperationQueuePriorityVeryLow 常量。同样,如果您指定 +10,此方法将调整该值以匹配 NSOperationQueuePriorityVeryHigh 常量。
阅读更多