Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS-如何创建脱机操作队列并在联机时执行?_Ios_Objective C_Iphone_Core Data_Offline - Fatal编程技术网

iOS-如何创建脱机操作队列并在联机时执行?

iOS-如何创建脱机操作队列并在联机时执行?,ios,objective-c,iphone,core-data,offline,Ios,Objective C,Iphone,Core Data,Offline,我刚进入iOS。我有一个场景:如果用户的设备处于脱机状态,则将其请求(Web服务)添加到一个队列中,并使用其所有请求详细信息参数。每当其设备联机时,则逐个/同时点击Web服务(已存储数据),直到队列清空。我必须使用核心数据。我对此一无所知。所以,如果有人为示例项目共享链接(github/其他任何站点),我将不胜感激提前感谢。脱机时将数据存储在临时数据库中,联机时检查临时数据库是否有数据,然后使用适当的递归或for循环逐个发送到服务器。成功提交后(在调用服务方法的完成处理程序中)如果使用递归,请从

我刚进入iOS。我有一个场景:如果用户的设备处于脱机状态,则将其请求(Web服务)添加到一个队列中,并使用其所有请求详细信息参数。每当其设备联机时,则逐个/同时点击Web服务(已存储数据),直到队列清空。我必须使用核心数据。我对此一无所知。所以,如果有人为示例项目共享链接(github/其他任何站点),我将不胜感激提前感谢。

脱机时将数据存储在临时数据库中,联机时检查临时数据库是否有数据,然后使用适当的递归或for循环逐个发送到服务器。成功提交后(在调用服务方法的完成处理程序中)如果使用递归,请从临时数据库中删除该数据并再次从中调用函数。

当连接不稳定时,我们在内部项目中遇到类似的问题,因此我们编写了这个框架,它包装了任何网络请求,并允许它在不考虑连接的情况下排队-。任何做类似事情的人都会发现它很有用,或者至少能从中获得灵感。您仍然需要管理网络请求本身,但它提供了一个相当简单的界面,以确保应用程序一直尝试执行它,直到成功,包括保存到磁盘,以便启动时可以重新尝试

最简单的用例如下所示,尽管大多数实际案例(保存到磁盘、特定请求数据等)还有一些需要解决的问题:

import OfflineRequestManager

class SimpleRequest: OfflineRequest {
    func perform(completion: @escaping (Error?) -> Void) {
        doMyNetworkRequest(withCompletion: { response, error in
            handleResponse(response)
            completion(error)
        })
    }
}
///////
OfflineRequestManager.defaultManager(queueRequest: SimpleRequest())

你试过了吗?出了什么问题?显示您的代码@Wain,我不知道,我只是在iOS中输入的