gpt4 book ai didi

ios6 - 如何使用connectionDidFinishDownloading :destinationURL: and connectionDidFinishLoading:

转载 作者:行者123 更新时间:2023-12-04 05:14:04 25 4
gpt4 key购买 nike

我已经实现了 NSURLConnectionDownloadDelegate、NSURLConnectionDataDelegate 委托(delegate)方法,如下所示。

问题是在 connection:didReceiveResponse: 之后, connectionDidFinishDownloading:destinationURL: 被调用但没有 connectionDidFinishLoading: 甚至 connection:didReceiveData: 未被调用。

当我评论 NSURLConnectionDownloadDelegate 方法时,调用其他三个没有任何问题。

我有一个从服务器获取 JSON 的 NSURLConnections。报刊亭使用 NSURLConnectionDataDownloading 委托(delegate)方法来下载问题。

我该如何管理?

这是我正在实现的所有委托(delegate)方法

- (void)connection:(NSURLConnection *)connection didWriteData:(long long)bytesWritten totalBytesWritten:(long long)totalBytesWritten expectedTotalBytes:(long long)expectedTotalBytes {

}

- (void)connectionDidFinishDownloading:(NSURLConnection *)connection destinationURL:(NSURL *)destinationURL {

}

- (void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {

}

- (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {

}

- (void) connectionDidFinishLoading:(NSURLConnection *)connection {

}

这是我的 .h 文件
@interface FirstTopViewController : UIViewController <NSURLConnectionDownloadDelegate, NSURLConnectionDataDelegate, NSURLConnectionDelegate, UITableViewDataSource, UITableViewDelegate>

这就是我连接到服务器以获取 JSON 的方式
[[NSURLConnection alloc] initWithRequest:req delegate:self startImmediately:YES];

如果需要,这是下载问题的代码
NSURLRequest *urlReq = [NSURLRequest requestWithURL:myURL];
NKAssetDownload *asset = [currentIssue addAssetWithRequest:urlReq];
[asset downloadWithDelegate:self];

问题在于从服务器获取 JSON 的调用。问题下载工作正常。

最佳答案

NSURLConnectionDataDelegate 定义用于将数据加载到内存的委托(delegate)方法。
NSURLConnectionDownloadDelegate:用于直接将资源下载到磁盘文件的委托(delegate)方法。

然后,如果您在委托(delegate)中实现了 connectionDidFinishDownloading:destinationURL:。这将通知 NSURLConnection 你想要将数据下载到磁盘文件而不是内存作为 NSData。这
NSURLConnectionDataDelegate 方法不会被调用。如果您从您的委托(delegate)类实现中消除 connectionDidFinishDownloading:destinationURL: ,则将调用 connection:DidReceiveData: 。

对于您的情况,为不同的用途实现两个助手委托(delegate)。

关于ios6 - 如何使用connectionDidFinishDownloading :destinationURL: and connectionDidFinishLoading:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14519566/

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