测试已测试 | ✓ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布上次发布 | 2014年12月 |
由 Bruno Abrantes 维护。
使用数据库来保存需要在以后时间完成的操作的一种持续的任务队列。
BAPersistentOperation 使用一个 FIFO 队列,该队列同时使用数据库和内存队列来保存那些由于某些原因必须在将来完成的操作。最佳使用案例(也是其存在的原因!)是允许应用程序中的 POST/PUT/DELETE 请求保存并在后续时间以正确的顺序执行,以防网络连接不可用。它使用 NSOperationQueue 在单独的线程中自动处理这些操作,并利用代理方法为主应用程序提供“钩子”,以提供更大的灵活性来序列化和反序列化对象。
它的唯一依赖项是 FMDB。
要运行示例项目;首先从 GitHub 克隆仓库,然后从 Example 目录中运行 pod install
。项目由一个简单的表视图组成,允许您创建 "请求",这些是具有随机延迟的模拟异步操作。还有一个按钮可以使您的应用程序变成 "在线" 和 "离线" 状态。当处于 "离线" 状态时,任何新添加的请求数据开始处于 "停止" 状态。当您变成 "在线" 状态或重新启动应用程序时,这些请求数据将插入队列并依次执行。
完整文档可通过 CocoaDocs 提供,但以下是重点内容
开始处理队列中的操作。如果没有操作在内存中,它将尝试从数据库中加载更多操作。
停止处理队列中的操作。
从数据库中将加载操作放入内存队列。
你可以(也可能应该)在使用的类中遵循此协议。
此钩子给你一个机会将自定义对象序列化到队列中。你应该返回一个包含你想要保存的任意数据的 NSDictionary
。这些数据将随后用于重建你的对象。
当操作开始处理时,此钩子会被触发。你可以使用操作的 data
属性来重建原始对象。你也有责任在此代理中完成操作,通过调用 [operation finish]
来完成。
BAPersistentOperationQueue 依据 MIT 许可证提供。请参阅 LICENSE 文件获取更多信息。