3

私の時計アプリは を使用してWKInterfaceControllerを表示しWKInterfaceTableます。エラーの場合presentAlert、提示された で呼び出されたを使用してアラートを表示しますWKInterfaceController。以前に警告が表示されたため
、シンボリック ブレークポイントを に設定しました。UITableViewAlertForLayoutOutsideViewHierarchy

一度だけ警告: UITableView は、ビュー階層に含まれずに、表示可能なセルやその他のコンテンツをレイアウトするように指示されました (テーブル ビューまたはそのスーパービューの 1 つがウィンドウに追加されていません)。これにより、正確な情報 (テーブル ビューの境界、特性コレクション、レイアウト マージン、セーフ エリア インセットなど) なしで、テーブル ビュー内のビューを強制的に読み込んでレイアウトを実行することでバグが発生する可能性があり、余分なレイアウト パスによる不要なパフォーマンス オーバーヘッドも発生します。 . UITableViewAlertForLayoutOutsideViewHierarchy にシンボリック ブレークポイントを作成して、デバッガーでこれをキャッチし、何が原因で発生したかを確認します。これにより、可能であればこのアクションを完全に回避するか、テーブル ビューがウィンドウに追加されるまで延期することができます。

myWKInterfaceTableが表示されると、このブレークポイントでアプリが停止し、アラートが表示されます。

let visibleInterfaceController = WKExtension.shared().visibleInterfaceController
visibleInterfaceController?.presentAlert(withTitle: title, message: message, preferredStyle: .alert, actions: [okAction])       

スタック トレースは次のとおりです。
ここに画像の説明を入力

私の質問は次のとおりです。
このブレークポイントの理由は何ですか?どうすれば回避できますか?

編集:
このブレークポイントを編集しようとすると、次のように表示されることに気付きました: ...そして、それが何を意味するのかわかりません...
ここに画像の説明を入力

4

0 に答える 0