CGPDFDocumentCreateWithURL дает мне 0x0 ноль - PullRequest
1 голос
/ 28 августа 2010

У меня есть файл test.pdf в моем комплекте приложений.Я запускаю тест в iPhone Simulator (iPad) и не могу заполнить CGPDFDocumentRef.Я схожу с ума или что?!?

Вот фрагмент кода из примера приложения, созданный специально для этого (класс ViewController):

- (void)viewDidLoad {
    [super viewDidLoad];
    // below code to show files in app bundle...
 NSString *path = [[NSBundle mainBundle] resourcePath];
 NSFileManager *fm = [NSFileManager defaultManager];
 NSError *error = [[NSError alloc] init];
 NSArray *directoryAndFileNames = [fm contentsOfDirectoryAtPath:path error:&error];

 //just to make sure the file is there : (test.pdf)
 for (NSString *ts in directoryAndFileNames) {
  NSLog(ts);  // NSLog confirms the file is there
 }

 //Function below is supposed to create the CDPDFDocumentRef
 [self updatePageRef]; // try to get the CGPDFDocumentRef
}

-(BOOL)updatePageRef {
 NSLog(@"Updating PAGE");

 NSString *pdfStringURL = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"pdf"];
 NSURL *pdfURL = [NSURL fileURLWithPath:pdfStringURL];
 NSLog([pdfURL path]); // this is good

 NSLog(@"File Exists = %d", [[NSFileManager defaultManager] fileExistsAtPath:pdfStringURL]); // this gives me 1 (YES)

 pdf = CGPDFDocumentCreateWithURL((CFURLRef)pdfURL);    
    //from here on the pdf is nil??????????!!!!!!!!!!!!!

 if (pdf && CGPDFDocumentGetNumberOfPages(pdf) > 0) {
  return YES;
 }

 return NO;
}

Над объявленным pdfв @interface как CGPDFDocumentRef pdf; я знаю, что файл PDF хорош, потому что я успешно открыл его в режиме предварительного просмотра.

Все компилируется и запускается без предупреждений и ошибок.

Справка!

1 Ответ

1 голос
/ 28 августа 2010

Я нашел решение, извините за вопрос на первом месте.PDF был не очень хорошим, хотя он отлично показывался в «превью».Я положил еще один PDF, назвал его «test.pdf», и все прошло хорошо.

Ура!

...