gpt4 book ai didi

ios - NSOperationQueue 每行 UITableView

转载 作者:行者123 更新时间:2023-11-29 00:43:19 26 4
gpt4 key购买 nike

我需要启动多个 NSOperations 来加载包含来自 AWS S3 的视频的表(表的每行两个操作),但是在选择表中的一行后,我想传递与该行相关的那些操作表到下一个 View Controller 以继续下载并下载其他视频。然后,我将暂停表中其他行的其他操作,并在返回 TableView Controller 时恢复它们。

为 UITableView 的每一行设置一个 NSOperationQueue 是否安全?有没有更好的方法来完成我想要的?

最佳答案

我肯定更喜欢有一个单独的(最好是共享的)管理器(例如,我们称它为 VideosManager),具有导出的(可能是间接的)操作访问权限,单独的队列管理,线程安全+锁定等,而不是任何依赖于 Controller 层次结构的解决方案。

您可以将您的方法坚持使用 View Controller 模型,但在大多数情况下这不是一个好主意。

用于设计和实现的快速示例 API:

(假设您有一个带有更多信息的 Video 接口(interface))

@interface VideoManager

+ (instancetype)sharedManager; // returning a shared singleton

- (void)startDownloadOfVideo:(Video *)video;
- (void)cancelDownloadOfVideo:(Video *)video;
- (void)cancelDownloadsExceptForVideo:(Video *)video;
- (BOOL)isDownloadInProgressForVideo:(Video *)video;

@end

该实现将处理和操作所需队列中的下载操作(主要是连接实例及其委托(delegate)队列规划),处理传入数据,将其正确写入文件或输出流,允许您根据需要动态控制流。这只是一个快速简单的方案,您可以迭代并使其满足您的要求。

关于ios - NSOperationQueue 每行 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38961440/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com