Загрузите файл pdf с сервера, сохраните его в каталоге ApplicationSupport.IOS - PullRequest
1 голос
/ 14 июня 2011

Я новичок в разработке для iOS, и я хочу знать, как я могу загрузить файл с сервера и сохранить его в папке поддержки приложений. Я хочу сохранить его в формате PDF, чтобы иметь возможность отображать его в UIWebView.

После долгого времени на разных сайтах, я думаю, что я должен использовать NSURLConnection (асинхронный), чтобы загрузить его. Или NSData (я уже пробовал, но это не сработало).

Итак, есть кто-то, кто может мне помочь, показав мне пример кода этого?

Большое спасибо:)

Ответы [ 2 ]

2 голосов
/ 14 июня 2011

Посмотрите на этот SO вопрос для примера того, как это сделать.

В этом примере используется ASIHTTPRequest , который является альтернативой NSURLRequestи NSURLConnection.Я настоятельно рекомендую вам использовать эту платформу, которая значительно облегчит вашу жизнь.

Если вы действительно хотите использовать NSURLRequest и NSURLConnection, см. эту другую тему .

0 голосов
/ 11 марта 2014
[self.productListArray enumerateObjectsUsingBlock:^(NSDictionary *productDictionary, NSUInteger idx, BOOL *stop)
{

     NSFileManager *fileManger=[NSFileManager defaultManager];

     if(![fileManger fileExistsAtPath:pdfString])
     {
         dispatch_async(serialQueue, ^()
                        {
                            NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLCacheStorageNotAllowed timeoutInterval:120];

                            NSURLResponse *response = nil;
                            NSError *connectionError = nil;

                            NSData *data = [NSURLConnection sendSynchronousRequest:request
                                                                 returningResponse:&response
                                                                             error:&connectionError];

                            if(connectionError)
                            {
                                NSLog(@"Pdf Connection Error==>%@",connectionError.userInfo);
                                [AMSharedClass showAlertMessge:@"Request timeout"];

                            }
                            else if ([response.MIMEType isEqualToString:@"application/pdf"])
                            {
                                NSLog(@"pdfFilePathURLString==>%@",pdfString);

                                [data writeToFile:pdfString atomically:YES];
                            }
                            else
                            {
                                [AMSharedClass showAlertMessge:@"Pdf not found."];
                                if (idx+1 == [self.productListArray count])
                                {
                                    [self.btnSetting setEnabled:NO];
                                }
                            }
                            if (idx+1 == [self.productListArray count])
                            {
                                [[[AMSharedClass object]sharedHUD]hideOnWindow];
                                self.pdfURLString =  [self joinPDF:self.productFilePathUrlArray WithDetails:self.pdfInfoArray];
                                [self initialConfiguration];
                                NSLog(@"%@",self.productFilePathUrlArray);
                            }
                        });

         // Long running task

     }
     else
     {
         if (idx+1 == [self.productListArray count])
         {
             self.pdfURLString =  [self joinPDF:self.productFilePathUrlArray WithDetails:self.pdfInfoArray];
             [self initialConfiguration];
             NSLog(@"%@",self.productFilePathUrlArray);
             [[[AMSharedClass object]sharedHUD]hideOnWindow];
         }
     }
 }];
...