gpt4 book ai didi

iphone - 在 iPhone 应用程序中下载多个文件( objective-c )

转载 作者:行者123 更新时间:2023-12-03 16:12:15 25 4
gpt4 key购买 nike

在我的 iPhone 应用程序中,我想下载 IIS 上具有身份验证的多个文件。单击按钮“我想开始下载过程”。

我知道如何通过身份验证下载文件。

    NSURLRequest* request =
[NSURLRequest requestWithURL:mMovieURL
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
movieConnection =
[[NSURLConnection alloc] initWithRequest:request delegate:self ];

我有几个带有上述代码的委托(delegate)方法。

但是如何同时进行多个下载。

谢谢

最佳答案

我不熟悉MultipleDownload,但如果它不能满足您的需求,我认为的问题是您有一个对象是许多的委托(delegate)NSURLConnections,并且您想知道如何保持它们的直线性。

委托(delegate)方法都返回 NSURLConnection 本身作为其第一个参数。因此,您可以通过测试哪个 NSURLConnection 正在回调您来跟踪哪些数据去了哪里。实现此目的的一种方法是使用 NSDictionary 将连接映射到其 NSMutableData 对象。现在的技巧是你不能让 NSURLConnection 成为字典中的键,因为它不符合 NSCopying (而且你也不希望它这样做) 。解决此问题的一种方法是使用连接地址,例如:

NSString *key = [NSString stringWithFormat:@"%p", connection];

这将为任何对象返回一个唯一的键(其地址的十六进制表示)。有些人使用 description 来达到此目的,但我不喜欢这样做,因为它不是一个定义良好的界面。不能保证它是独一无二的。在我经常这样做的系统中,我在名为 -uniqueIdentifier 的方法中实现上述 -stringWithFormat: 并将其设为 NSObject 上的类别所以任何东西都可以在字典中追踪。

我经常发现创建一个小的包装对象会更容易,以便每个对象控制自己的 NSURLConnection,就像我确信 MultipleDownload 正在做的那样,但仍然此技术在多种情况下都很有用,无论您是管理多个 TableView ,还是任何具有委托(delegate)的其他内容。

编辑:将上面的 %x 替换为 %p,如彼得所述。他是对的,我的想法不对。仔细检查我的代码,我实际上一直在使用 %p,之前遇到过这个错误......

关于iphone - 在 iPhone 应用程序中下载多个文件( objective-c ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1016040/

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