我有以下功能:
- (void)loadPdfFromPath:(NSString*)path
{
NSURL *pathUrl = [NSURL URLWithString:path];
_pdfDocument = CGPDFDocumentCreateWithURL((CFURLRef)pathUrl);
}
从文档中我相信它会起作用,因为您可以通过Toll-Free BridgingNSURL*
从一个案例到一个案例。但是,此功能失败,我在日志中得到以下输出:CFURLRef
CFURLCreateDataAndPropertiesFromResource:错误代码 -15。
注意:-15 =kCFURLImproperArgumentsError
但是,如果我创建一个实际的CFURLRef
,它绝对可以正常工作:
- (void)loadPdfFromPath:(NSString*)path
{
CGPDFDocumentRelease(_pdfDocument);
CFStringRef cgPath = CFStringCreateWithCString(NULL, [path UTF8String], kCFStringEncodingUTF8);
CFURLRef url = CFURLCreateWithFileSystemPath(NULL, cgPath, kCFURLPOSIXPathStyle, 0);
_pdfDocument = CGPDFDocumentCreateWithURL(url);
CFRelease(url);
CFRelease(cgPath)
}
我错过了什么?我很高兴将第二个函数保留在我的代码中,但我更想知道为什么第一个函数会失败。