質問: [[UIDocumentInteractionController alloc] init]; [interactionController setURL:[NSURL fileURLWithPath:filePath]]; [interactionController setUTI:@"public.text"]; [interactionController setDelegate:self]; [interactionController presentOpenInMenuFromBarButtonItem:actionBarButtonItem animated:YES]; ``` メニューはうまく開いて、私が期待しているPages、Dropboxなどのアプリを表示します。しかし、それらの1つをタップすると、「開く」メニューが閉じられ、何も実行されません(ファイルは送信されず、ターゲットアプリケーションは開かれません)。 私はコピーを起動するためのデリゲートメソッド `documentInteractionController:canPerformAction:`と `documentInteractionController:performAction:`を実装しようとしました:そしてメニュー:(メニューではなく)それはリストされたページだけでメニューをプルアップしましたが、それでも動作しませんでした。 これはどのように解決されるでしょうか?
回答: 私は答えを見つけました。それはメモリ管理です。私はUIDocumentInteractionControllerを作成し、それを提示しますが、インスタンス変数としては持っていません。 ARCは何かをする機会がある前にそれを割り当て解除します。これには、ドキュメントを外部アプリに送信することも含まれます。 このバグはiPhoneには表示されませんでしたが、iPad上ではpopoverアーキテクチャが少し違って動作し、割り当てが解除されたときに描画しようとするため、エラーが発生します。それがバグに私に警告したものです。