2010-12-12 3 views
4

私はドキュメントディレクトリにアクセスする必要があるアプリケーションを作成しています。現在、以下のファイルを使用して、メインバンドルからファイルpdfNameのURLを返しています。ドキュメントディレクトリを取得する同様の方法はありますか?ドキュメントディレクトリのCFURLRef

CFURLRef pdfURL = CFBundleCopyResourceURL(CFBundleGetMainBundle(), (CFStringRef)pdfName, NULL, NULL); 

編集:これは私の完全なコードですが、それが動作していない - 任意のアイデア?

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
    NSString *myFilePath = [documentsDirectory stringByAppendingPathComponent:pdfName]; 

    CFURLRef pdfURL = (CFURLRef)[NSURL fileURLWithPath:myFilePath]; 
    pdf = CGPDFDocumentCreateWithURL((CFURLRef)pdfURL); 
    CFRelease(pdfURL); 

答えて

10

私は同じ問題を抱えていました。 CFURLRefの作成時にアプリがクラッシュしました。

CFURLRef pdfURL = (__bridge CFURLRef)[[NSURL alloc] initFileURLWithPath:myFilePath]; 
pdf = CGPDFDocumentCreateWithURL(pdfURL); 
CFRelease(pdfURL); 

は私のコードの唯一の違いのように見える私はALLOCとNSURLを初期化という点である:これは私が(与えられたあなたはすでにドキュメントディレクトリ内のファイルへの完全なパスとNSStringのを持っている)、それを解決する方法です。

0

これはあなたを助けるかもしれない:ADC Link

+0

私はそれを見て、いくつかの進歩を遂げました(上記のアップデートを参照)。私の現在のコードに何が間違っているかに関するアイデアはありますか? – Jack

+0

NSSearchPathForDirectoriesInDomainsはNSArrayを返します。http://bit.ly/g7pNrFを参照してください。http://bit.ly/fSbJLYの例題が見つかりました。 – lm2s

関連する問題