[解決済み] iOS9 storyboard 未処理のアクション(handleNonLaunchSpecificActions)とは?
質問
iOS9でストーリーボードを使ってアプリを実行すると、コンソールに次のようなエラーが表示されることに気づきました。私はxCode7を使用しています。 これは私が心配する必要があるものでしょうか。
-[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion:] ** unhandled action -> <FBSSceneSnapshotAction: 0x176bfb20> {
handler = remote;
info = <BSSettings: 0x176a5d90> {
(1) = 5;
};
}
どのように解決するのですか?
あなたのコードには何も問題はありません。これは Apple の内部で発生するログ メッセージであり、それについてレーダーに記録する必要があります。
ということを示すヒントが 2 つあります。 おそらく Apple のコードであることを示す 2 つのヒントがあります。
-
メソッド名をリードするアンダースコア
_handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
は、そのメソッドが宣言されたクラスのプライベートなものであること、あるいは内部的なものであることを示す慣習です。(参照 このコメント .) -
の 2 文字の接頭辞は、このように推測するのが妥当でしょう。
FBSSceneSnapshotAction
は FrontBoard の略語であり、「"」の Rene Ritchie によれば、FrontBoard は iOS 9 のほしいものリスト。ゲスト モード" は、アプリの起動に関連するソフトウェア全体のファミリの一部です。
iOS 8 で、Apple はシステム マネージャーである SpringBoard を、より小さく、より焦点を絞ったいくつかのコンポーネントにリファクタリングしました。バックグラウンドのタスクを処理するためにすでに分離されていた BackBoard に加えて、フォアグラウンドのタスクのための Frontboard が追加されました。また、暗号化された安全な環境下でロック画面を処理するためのPreBoardも追加されました。[...]
の意味が全くわかりません。
BS
の接頭辞は
BSSettings
は for ですが
BS
の略記です。
BackBoard Settings
であり、このログ メッセージを分析すると、あなたが行ったことではないことがわかります。
スタックトレースを取得しようとする場合、以下のような実装が可能です。 ここにリンクされているカテゴリ . プライベートAPIをオーバーライドすることは悪い考えだと主張する人もいますが、この場合、スタックトレースを取得するための一時的なインジェクションはあまり有害ではありません。
EDITです。
しかし、このアクションが何であるかはまだ知りたいところです。そこで、ブレークポイントを
-[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion]
というクラスを見つけ、レジスタの値を出力し始めました。
FBSceneImpl
というクラスが見つかり、そのクラスには私のアプリケーションに関するたくさんの情報がありました。
次にどのプライベートメソッドが呼び出されるかを知ることができます(
プログラムカウンタに格納されています。
命令ポインタ、レジスタ15に格納されています)。
私は、処理されていない
FBSceneSnapshotAction
を見つけようとしましたが、うまくいきませんでした。それから、私はUIApplicationをサブクラス化し、オーバーロードした
_handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
. 今、私はアクションを直接取得することができましたが、それでも、それが何であるかはわかりません。
そこで、もう一度 FBSceneSnapshotAction を見てみました。というスーパークラスを持っていることがわかりました。
BSAction
.
そして、次のように書きました。 ツール と同じように ランタイムブラウザ のようなもので、BSActionのサブクラスをすべて調べました。その結果、かなりの数のリストがあることがわかりました。
2つのメソッド名(1つはログから、もう1つはデバイス上のプログラムカウンターから)は、これらのアクションがシステムの周りでアクションを渡すためにフードの下で使用されていることを示します。
いくつかのアクションはおそらくアプリデリゲートのコールバックまで送信され、他のものは内部で処理されます。
ここで起こっているのは、正しく処理されなかったアクションがあり、システムがそれを記録しているということです。私たちはそれを見るべきでなかったようです。
関連
-
[解決済み] ベリログ・ノンネット値割り当て
-
[解決済み] Golang で exec.Command を実行したときの "exit status 1" エラーをデバッグする方法
-
[解決済み] JSON.stringifyでErrorを文字列化することはできないのでしょうか?
-
[解決済み] PHPはエラーログをどこに保存するのですか?(PHP 5, Apache, FastCGI, および cPanel)
-
[解決済み] node.jsで「Error: spawn ENOENT」をデバッグするにはどうすればよいですか?
-
[解決済み】App Transport Securityポリシーが安全な接続の使用を要求するため、リソースをロードできませんでした。
-
[解決済み】iOS9 Untrusted Enterprise Developerで信頼するオプションがない。
-
[解決済み】Storyboardのログイン画面のベストプラクティス、ログアウト時のデータクリアの処理について
-
[解決済み] ERROR ITMS - 90167 パッケージ内にアプリバンドルが見つかりません。
-
[解決済み] PHPのエラー処理: die() vs trigger_error() vs throw Exception
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ベリログ・ノンネット値割り当て
-
[解決済み] Golang で exec.Command を実行したときの "exit status 1" エラーをデバッグする方法
-
[解決済み] VB6でVarTypeが返すvbErrorとは何ですか?
-
[解決済み] PHPはエラーログをどこに保存するのですか?(PHP 5, Apache, FastCGI, および cPanel)
-
[解決済み] cocoa objective-cのクラスで変数の前にアンダースコアを付けるとどうなるのでしょうか?
-
[解決済み] PHPのエラー処理: die() vs trigger_error() vs throw Exception
-
[解決済み] Golang プログラムが呼び出したエラーの行番号を表示させるには?
-
[解決済み] Go で log を使わずに Stderr に出力するにはどうしたらいいですか?