[解決済み] オブジェクトの文字列プロパティに基づいて、Xcodeで条件付きブレークポイントを設定するにはどうすればよいですか?
2023-02-11 07:33:54
質問
特定の文字列にマッチしたときにデバッガーをブレークさせることができるようにしたいと思っています。例として、私は次のようなものを持っているかもしれません。
Foo myObj = [self gimmeObj];
myObj
というプロパティがあるかもしれません。
name
. 私はデバッガが以下の場合に代入を停止するようにしたい
[myObj.name isEqualToString:@"Bar"];
Xcodeで条件付きブレークポイントを設定するにはどうすればよいですか?
どのように解決するのですか?
Xcodeで普通にブレークポイントを設定し、その上でcontrolキーを押しながらクリックし、Edit Breakpoint(実行 -> 表示 -> ブレークポイントを選択)を選択すると、条件付きブレークポイントを設定することができます。
ブレークポイントエントリに、Condition欄があります。
さて、この条件にはいくつか注意しなければならない点があります。 まず、gdb はドット構文を理解しないので、myObj.name の代わりに [myObj name] を使用しなければなりません (name が ivar でない限り)。
次に、gdbのほとんどの式と同様に、戻り値の型、つまり"BOOL"を伝えなければなりません。 そこで、次のような条件を設定します。
(BOOL)[[myObj name] isEqualToString:@"Bar"]
のようなコードを一時的に追加して、コードでこれを行う方が実際には簡単であることがよくあります。
if ( [myObj.name isEqualToString:@"Bar"] ) {
NSLog( @"here" );
}
といった具合に、NSLog上でブレークポイントを設定します。 そうすれば、gdbが何を解析できて、何を解析できないかを気にすることなく、任意に複雑な条件を設定することができます。
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み] Xcode 4で「既存のフレームワークを追加」する方法は?
-
[解決済み] Objective-Cで、ある文字列が他の文字列を含んでいるかどうかを調べるにはどうすればよいですか?
-
[解決済み] Node.js の console.log() で '[Object]' ではなく、完全なオブジェクトを取得するにはどうすればよいですか?
-
[解決済み] Xcode DMGまたはXIPファイルをダウンロードする方法は?
-
[解決済み] ChromeでコードからJavaScriptのブレークポイントを設定する方法は?
-
[解決済み] Xcode 4でNSZombieEnabledを設定するにはどうすればよいですか?
-
[解決済み] Objective-Cのセレクタ?
-
[解決済み] Objective-Cでnilにメッセージを送信する
-
[解決済み] Objective-CのクラスからSwiftの関数を呼び出す
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Objective-C:BOOLとboolの比較
-
[解決済み] 現在の日付から7日分を差し引いた日数
-
[解決済み] Xcodeはクラッシュの原因となる行を表示しない
-
[解決済み] Swiftでクラスをプロトコルに準拠させるには?
-
[解決済み] IOSのUIViewからアプリケーションのドキュメントフォルダに画像を保存する
-
[解決済み] retainCountはいつ使うのか?
-
[解決済み] NSNumberのインクリメント方法
-
[解決済み] 数字の後に "f "をつける
-
[解決済み] Objective-Cです。NSNotificationのオブザーバを削除するには?
-
[解決済み] iOSです。2つの日付を比較する