gpt4 book ai didi

cocoa-touch - 如何避免 NSUrlConnection 的多个实例的数据损坏

转载 作者:行者123 更新时间:2023-11-29 05:07:17 25 4
gpt4 key购买 nike

我编写了一个 iOS 应用程序,它多次调用 NSUrlConnection 以从网络下载图像数据。有时,一个 NSUrlConnection 在另一个 NSUrlConnection 开始之前尚未完成。我看到损坏的 jpeg 数据,我认为这是因为我的 didReceiveData 委托(delegate)正在保存来自两个单独的 NSUrlConnections 的数据,并将两个 jpeg 数据流一起合并到一个数据变量中,从而导致损坏。

我的问题是:避免这种情况的最佳方法是什么?似乎没有办法让每个 NSUrlConnection 实例保存到单独的数据变量,或者让每个实例等到前一个实例完成后再保存。

我的代码基本上遵循Apple的示例,除了我多次调用loadData函数来创建NSURLRequest和NSURLConnection。 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html

在此先感谢您的帮助。

最佳答案

当调用委托(delegate)的connection:didReceiveData:方法时,您将把连接实例作为第一个参数。因此,您需要使用它来跟踪哪个连接刚刚接收到数据。

Apple 的示例维护一个 NSMutableData 实例。您的代码将需要多个实例,每个实例对应一个事件连接。

或者,当然,您可以为每个连接拥有一个单独的委托(delegate)对象(一个单独的实例)。这可能会更容易。

关于cocoa-touch - 如何避免 NSUrlConnection 的多个实例的数据损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4357734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com