2

問題は、「成功」が常に false を返すということですか? 私は問題は何ですか?

次のように私のコード:

UIDocumentInteractionController *docController = [[UIDocumentInteractionController interactionControllerWithURL:currentPDFPath] retain];

if (docController)
{
    docController.delegate = self;

    BOOL success = [docController presentOptionsMenuFromBarButtonItem:openInButton animated:YES]; 
    //BOOL success = [docController presentOpenInMenuFromBarButtonItem:openInButton animated:YES];
    NSLog(@"success: %d", success);
    if(!success)
    {
        UIAlertView * noApps = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Your iPad doesn't seem to have any other Apps installed that can open this document (such as iBooks)" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];

        [noApps show];
        [noApps release];

    }
}
    [docController release];
4

3 に答える 3

0

クラスリファレンスドキュメントには次のように書かれています:

戻り値

YESオプション メニューが表示されたかNOどうか。メニューに含める適切な項目がない場合、オプション メニューが表示されないことがあります。

あなたの%3F1340297029接尾辞がUTIの一致currentPDFPathを妨げている可能性があると思います.

UTIのプロパティを確認し、 の場合はdocControllerに設定します。kUTTypePDFnil

于 2012-07-02T12:59:29.963 に答える
0

コードを少し変更しましたが、うまくいきません。ARC を使用しているため、ARC 以外のコードに合わせて変更する必要があります。

BOOL success = [self.documentInteractionController presentOpenInMenuFromRect:rect inView:self.view animated:YES];

                if (success == NO) {
                    NSLog(@"No application was found");
                } else {

                    NSLog(@"Applications were found");
                }

BOOLを返すYESNOYESの後ろの行で、行=TRUENO場合は のいずれかですFALSE

--デビッド

于 2013-09-08T07:41:40.037 に答える
0

クラッシュの問題は、おそらく docController が既にリリースされているためです。それを保持し、後で自動解放する必要があります。ここを見てください:

https://stackoverflow.com/a/3474825/523350

于 2012-08-19T13:04:07.137 に答える