以下に示すように、NSURLConnectionDownloadDelegateとNSURLConnectionDataDelegateの両方のデリゲートメソッドを実装しました。
問題は、connection:didReceiveResponse:、connectionDidFinishDownloading:destinationURL:が呼び出された後、connectionDidFinishLoading:が呼び出されないことです。connection:didReceiveData:も呼び出されません。
NSURLConnectionDownloadDelegateメソッドにコメントすると、他の3つは問題なく呼び出されます。
サーバーからJSONを取得するNSURLConnectionsがあります。NSURLConnectionDataDownloadingデリゲートメソッドは、ニューススタンドが問題をダウンロードするために使用します。
これをどのように管理しますか?
これが私が実装しているすべてのデリゲートメソッドです
- (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を取得するための呼び出しにあります。問題のダウンロードは正常に機能します。