2010-03-23 69 views
1

使用以下代碼,ctx未正確創建。它仍然nilCGPDFContextCreateWithURL未正確創建上下文

#import <QuartzCore/QuartzCore.h> 

@implementation UIView(PDFWritingAdditions) 

- (void)renderInPDFFile:(NSString*)path 
{ 
    CGRect mediaBox = self.bounds; 
    CGContextRef ctx = CGPDFContextCreateWithURL((CFURLRef)[NSURL URLWithString:path], &mediaBox, NULL); 

    CGPDFContextBeginPage(ctx, NULL); 
    CGContextScaleCTM(ctx, 1, -1); 
    CGContextTranslateCTM(ctx, 0, -mediaBox.size.height); 
    [self.layer renderInContext:ctx]; 
    CGPDFContextEndPage(ctx); 
    CFRelease(ctx); 
} 

@end 

在它顯示控制檯: <Error>: CGPDFContextCreate: failed to create PDF context delegate.

我試過幾個不同的路徑,所以我相當肯定是沒有問題的。感謝您的任何建議!

回答

1

如果你的字符串包含一個路徑,你需要+ [NSURL fileURLWithPath:],而不是+ [NSURL URLWithString:]。