0

我正在使用 Rubymotion 构建一个 iOS 应用程序。我需要找到一种在我的应用程序中创建和运行“后台作业”(如 Resque)的方法。我的意思是当用户例如添加一个新任务时,而不是将其直接发送到服务器,我想在 Internet 连接良好时等待。

有宝石或解决方案吗?

感谢所有线索!

4

1 回答 1

3

如果你想拥有类似后台作业的东西,你可以看看NSQueueOperationNSOperation

基本上一个 NSQueueOperation 就像一个包含 NSOperation 的容器。

NSOperation 是一种工作。但是没有坚持。因此,如果 NSOperations 在 NSQueueOperation 中排队,并且如果您重新启动应用程序,则 NSQueueOperation 将为空。

但在你的情况下,这可能有点矫枉过正。相反,您应该收听可达性通知。您可以使用Apple 的实现这个(更强大)。当您的设备上线时,获取尚未在远程服务上创建/更新的项目列表。您可以通过查找它们的 id 或任何其他可用于确定其状态的标志来找到它们。

例如,如果一条记录还没有任何 id,这意味着它还没有在您的远程服务上创建。同样,您可以使用updated(Boolean)属性来了解是否必须在远程服务上更新对象。

对于它们中的每一个,对您的 api 进行 HTTP 调用,一旦您的请求完成,更新您的对象以反映更改(设置 id,删除您的标志等...)

希望能帮助到你

于 2013-07-05T08:08:01.707 回答