0

URLを使用して画像を表示するUIImageViewがあります.UIActionSheetを表示するダウンロードボタンがあり、URLを使用してファイルをダウンロードします.NSURLConnectionを使用してダウンロード部分のコーディングを行う方法を知りたい.

- (IBAction)DownloadClick:(id)sender {

    UIActionSheet *Action = [[UIActionSheet alloc]
                         initWithTitle:@"Options" 
                         delegate:self 
                         cancelButtonTitle:@"Cancel" 
                         destructiveButtonTitle:nil
                         otherButtonTitles:@"Download", nil];

    [Action showInView:self.view];
}

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

    if (buttonIndex == 0) {  //The Download code will go here This is where i need ur help


          }

URL は「Url」という名前の文字列に保存されます。

4

3 に答える 3

1

このためにGoogleを試したとは思いません。とにかく、これがあなたのコードです。 NSURLConnectionDataDelegateを追加することを忘れないでください。

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0) {  //The Download code will go here This is where i need ur help

    //-------------------------------------------------------
    NSURL *url = [NSURL URLWithString:@"your_data_url"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url
                                             cachePolicy:NSURLRequestUseProtocolCachePolicy
                                         timeoutInterval:60.0];

    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

    if (connection) {
        NSLog(@"succeed...");
    } else {
        NSLog(@"Failed...");
    }
    //-------------------------------------------------------------------
  }
}

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

}

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

}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{

}

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

}
于 2013-04-24T08:21:32.717 に答える
1

画像のダウンロードに非同期リクエストを利用します。また、イメージのダウンロード中にエラーが発生した場合に、それを特定するのにも役立ちます。

 NSURL* url = [NSURL URLWithString:@"http://imageAddress.com"];
 NSURLRequest* request = [NSURLRequest requestWithURL:url];


[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse * response,
    NSData * data,
    NSError * error) {
if (!error){
            UIImage* image = [[UIImage alloc] initWithData:data];
           // do whatever you want with image
           }

}];
于 2013-04-24T08:18:09.013 に答える