菜鸟教程小白 发表于 2022-12-12 12:09:14

ios - 使用 AFNetworking 2.0 处理后台任务


                                            <p><p>我在使用 AFURLSessionManager 实现后台任务时遇到问题。
我正在创建一个带有 BaseURL 和 SessionConfiguration 的新 AFHTTPSessionManager,使用 <code>NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:</code> 并使用便捷的方法来创建 POST 请求。</p>

<p>当我运行我的应用程序时,第一个请求正常发送,但第二个请求返回<code>标识符为 {ID} 的后台 URLSession 已存在!</code> 并导致应用程序崩溃。</p>

<p>我看过 Apple 的 WWDC 2013 视频,他们建议您只创建一次 session 配置,使用</p>

<pre><code>dispatch_once(&amp;onceToken, ^{
    NSURLSessionConfiguration *configuration = ;
    session = ;
});
</code></pre>

<p>但是,AFURLSessionManager 的 <code>session</code> 属性设置为只读,我无法传递自定义 NSURLSession,只有一个 NSURLSessionConfiguration,它是在 <code>AFURLSessionManager:init</code> 中创建的>:</p>

<pre><code>self.session = ;
</code></pre>

<p>我觉得我做错了什么,但我还能如何使用 AFNetworking 支持后台任务?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>你不能实例化一个新的<code>AFHTTPSessionManager</code>然后改变它的<code>session</code>来引用一些单例<code>NSURLSession</code>是正确的。因此,您应该将 <code>AFHTTPSessionManager</code> 对象本身设为可在整个应用程序中重用的共享实例。</p>

<p>在 <a href="https://stackoverflow.com/a/21359684/1271826" rel="noreferrer noopener nofollow">end of this answer</a> ,我提供了一个使用 AFNetworking 进行后台 session 的示例。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 使用 AFNetworking 2.0 处理后台任务,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/26453822/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/26453822/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 使用 AFNetworking 2.0 处理后台任务