Apple gives sample code for Creating PDF document. But It uses CFURLRef
NSPanel savepanel gives NSURL.
I can't convert NSURL to CFURLRef
path = CFStringCreateWithCString (NULL, filename, kCFStringEncodingUTF8);
url = CFURLCreateWithFileSystemPath (NULL, path, kCFURLPOSIXPathStyle, 0);
NSLog(@"CFURLRef %@",url);
output is
2016-04-22 00:34:26.648 XXX Analysis[12242:813106] CFURLRef AnalysisReport.pdf -- file:///Users/xxxxxx/Library/Containers/com.xxxxxx.xxxnalysis/Data/
convert code which i find
url = (__bridge CFURLRef)theFile;
NSLog(@"NSURL %@",url);
output is
2016-04-22 00:37:20.494 XXX Analysis[12325:816505] NSURL file:///Users/xxxxxx/Documents/xxxnalysis.pdf
at the end PDF file is saved but Program crash when the NSPanel closed.
CFURLRef
and NSURL
are toll-free bridged. So typically, you would just do this:
NSURL *url = ...;
CFURLRef cfurl = CFBridgingRetain(url);
And when you no longer need the CFURL object:
CFRelease(cfurl);
Or if you're reasonably certain that the NSURL will stick around long enough, you can just do
CFURLRef cfurl = (__bridge CFURLRef)url;
If you're getting a crash, that probably means you're over-releasing something — specifically, that you're releasing an object that you don't own. I would suggest reading Apple's docs on object ownership: