3

私のアプリは印刷をサポートしています。ユーザーがプリンター オプションのモーダル ビュー コントローラーをキャンセルすると、Apple のコードのどこかでアプリがクラッシュし、次のメッセージが表示されます。_WebTryThreadLock(bool) ... Tried to obtain the web lock from a thread other than the main thread or the web thread. This may be a result of calling to UIKit from a secondary thread. Crashing now...

次のコードに絞り込みました。

let itemProvider = UIActivityItemProvider(placeholderItem: "message")
let activityItems = [ itemProvider,
                      UIMarkupTextPrintFormatter(markupText: "test") ]
let activityController = UIActivityViewController(activityItems: activityItems,
                                              applicationActivities: nil)
self.present(activityController, animated: true, completion: nil)

itemProviderアレイから削除するactivityItemsと、クラッシュはなくなります。私のアプリには のカスタム サブクラスがありUIActivityItemProviderますが、スーパークラスをカスタマイズせずに使用しても、このクラッシュが発生します。

複製するには、1 つのボタンを含む単一ビュー プロジェクトを作成し、上記のコード スニペットを本体として使用するアクションにボタンをリンクします。ボタンをタップし、アクティビティ ビュー コントローラーの [印刷] アイコンをタップしてから、[プリンター オプション] ビュー コントローラーの [キャンセル] ボタンをタップします。クラッシュ。何か案は?

4

1 に答える 1