任务管理器是一个Swift库,用于管理异步操作。任务管理器组件的主要目的是将服务器、数据库和其他后台操作封装成类似于单元的操作或任务。这有助于将业务逻辑与UI分离,并在整个应用中重用操作。
- iOS 13.0+
- Xcode 15.0+
- Swift 5.0+
要在CocoaPods中整合Task Manager到您的Xcode项目中,请规定其在您的Podfile中
pod 'Shakuro.TaskManager'
然后,在终端中运行以下命令
$ pod install
如果您不想使用CocoaPods,可以简单地将其复制到您项目中以整合Shakuro.TaskManager。
- 通过扩展BaseOperation创建几个操作。一个操作应该是业务逻辑的完整且独立的单元。
- 扩展TaskManager并覆盖.willPerformOperation()。在这个方法中定义操作之间的依赖关系。创建两个单独的TaskManager对象/子类是个好主意:一个用于处理与认证相关的任务,另一个用于所有其他工作。
- 通过在TaskManager上调用.performOperation()或.performGroup()来启动您的任务。您可以使用完成处理来处理结果。
如果操作的工作仅依赖于其选项,则应该定义operationHash。哈希用于.willPerformOperation()来构建依赖关系。
仔细考虑操作之间的依赖关系。.willPerformOperation()应该返回传入队列(旧)的操作,而不是如果两个操作(旧的和新的)从业务逻辑角度看相等,创建一个新操作。这将导致只有一个操作执行,但有多处完成回调。
每个任务(一个操作或操作组)都可以有一个retryHandler来在指定的条件下执行重试。如果您处理的是一个不可靠的服务器,它是一个完美的工具。
常规流程:交互器 -> 选项 -> 任务管理器(操作和内部依赖)-> HTTP客户端 + 数据库 -> 如果发生错误(例如,会话过期错误),则重试 -> 交互器内的完成块,带有类型化结果。
Shakuro.TaskManager根据MIT许可证发布。有关详细信息,请参阅LICENSE。
如果您喜欢这个工具,请给它加星,这将帮助我们成长并添加更多有用的东西。请随时联系我们,并可雇佣我们的团队为您开发移动或Web项目。