我正在使用Rubymotion构建iOS应用。 我需要找到一种在我的应用程序中创建和运行“后台作业”(如Resque)的方法。 我的意思是,当用户例如添加一个新任务,而不是直接发送到服务器时,我想等待互联网连接良好。
是否有宝石或解决方案?
感谢所有线索!
答案 0 :(得分:3)
如果您希望获得类似后台工作的内容,可以查看NSQueueOperation和NSOperation。
基本上NSQueueOperation就像一个包含NSOperation的容器。
NSOperation是一种工作。但是没有持久性。因此,如果NSOperations在NSQueueOperation中排队,并且重新启动应用程序,则NSQueueOperation将为空。
但在你的情况下,它可能有点矫枉过正。相反,您应该听取可达性通知。您可以使用Apple's implemtation或this one(功能更强大)。当您的设备上线时,请获取您的远程服务尚未创建/更新的项目列表。您可以通过查找他们的id或任何其他可用于确定其状态的标志来找到它们。
例如,如果某条记录还没有任何ID,则表示尚未在您的远程服务上创建该记录。同样,您可以使用updated(Boolean)
属性来了解是否必须在远程服务上更新对象。
对于他们每个人,对您的api进行HTTP调用,一旦您的请求完成,请更新您的对象以反映更改(设置ID,删除您的标志等...)
希望有所帮助