2012-01-11 8 views
0

NSURLConnectionで画像をダウンロードするクラスがあります。私はiOSの新機能ですので、ダウンロードが完了したViewControllerにどのように「通知する」ことができますか?私はどのような "ツール"を使うべきですか?ダウンロードが完了したことをコントローラに通知するにはどうすればよいですか?

明確化:

私は私の問題は、ダウンロードが完了したことを私のconnectionDidFinishLoadingから、のViewControllerを通知する方法である、NsUrlConnectionのすべてのコールバックを実装していますか?

答えて

0

私はAFNetworkingを使用していますが、ブロックを使用して接続応答を処理したり、失敗したりします。また、イメージを取得してUIImageViewに読み込むための素晴らしいラッパーも備えています。

0

NSURLConnectionを使用するには、接続で何か面白いことが起きたときに呼び出されるメソッドを持つデリゲートを実装する必要があります。接続が確立されたかどうか、データを受け取る方法、接続が完了したことをどのように知るかについての情報を受け取る方法です(connectionDidFinishLoading)。だから、基本的に、あなたのconnectionDidFinishLoadingに入れたコード

http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html#//apple_ref/doc/uid/20001836-BAJEAIEEでの詳細情報は、ビューを更新するようにビューコントローラへのメッセージのいくつかの種類を送信する必要があります。

あなただけNSURL接続を開始するクラスでこれらのメソッドを使用する必要があります
+0

私はconnectionDidFinishLoadingを実装していて、NSnotificayionをコントローラに通知しようとしましたが、ConnectionDidFinishLoadingから送信されたメッセージはコントローラで受信されませんでした。おそらくそれは異なるスレッドで実行されていますか?他に何が使えますか? – user691285

+0

あなたはダウンロードのためだけにスレッドを使用していますか?非同期APIを使用する方が簡単です。あなたは '[controller imageDownloaded]'のような通常のメソッド呼び出しでメッセージを送ることができます。 – Joni

0

imageConnectionがタイプNSURLConnectionのプロパティです
#pragma mark - 
#pragma mark Download support (NSURLConnectionDelegate) 

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{ 
    [self.activeDownload appendData:data]; 
} 


- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error // Never called (deprecated method not used with IOS version >> 4.3 ???) 
{ 
    // Clear the activeDownload property to allow later attempts 
    self.activeDownload = nil; 

    // Release the connection now that it's finished 
    self.imageConnection = nil; 
} 

- (void)connectionDidFinishLoading:(NSURLConnection *)connection{ 
    UIImage *image = [[UIImage alloc] initWithData:self.activeDownload]; 

    self.activeDownload = nil; 
    // Release the connection now that it's finished 
    self.imageConnection = nil; 
} 

NSURLConnection *imageConnection 

とactiveDownloadがNSMutableDataです:

NSMutableData *activeDownload 
関連する問題