2010-08-27 51 views
1

我在我的應用程序包中有文件test.pdf。我在iPhone模擬器(iPad)中運行測試,並且無法獲取CGPDFDocumentRef填充。我會瘋了還是什麼?!?CGPDFDocumentCreateWithURL給我0x0無

這裏是示例應用程序的一段代碼專門爲此(視圖控制器類)製成:

- (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文件是好的,因爲我在「預覽」中成功打開了它。

所有編譯和運行都沒有任何警告或錯誤。

幫助!

+0

爲什麼你在那裏創建一個空白的錯誤對象?您只需要將指針傳遞給變量,其中contentsOfDirectoryAtPath:error:應該存儲錯誤對象* it *創建的錯誤對象。 – 2010-08-27 21:16:33

+0

你是對的。這段代碼顯示了我從網上某處粘貼的文件。然而,你的評論並沒有讓我接近解決我的問題。 – Sasho 2010-08-27 22:05:45

回答

1

我找到了一個解決方案,很抱歉在第一個地方問。 PDF雖然在'預覽'中完美展現,但它不太好。 我已經把另一個pdf,命名爲'test.pdf',一切順利。

乾杯!

相關問題