Xcode デバッガーを使用して NSDictionary 変数のキーと値のペアを表示する方法はありますか? 変数ウィンドウで完全に展開されたときの情報の範囲は次のとおりです。
Variable Value Summary
jsonDict 0x45c540 4 key/value pairs
NSObject {...}
isa 0xa06e0720
辞書の各要素が表示されることを期待していました(配列変数に似ています)。
Xcode デバッガーを使用して NSDictionary 変数のキーと値のペアを表示する方法はありますか? 変数ウィンドウで完全に展開されたときの情報の範囲は次のとおりです。
Variable Value Summary
jsonDict 0x45c540 4 key/value pairs
NSObject {...}
isa 0xa06e0720
辞書の各要素が表示されることを期待していました(配列変数に似ています)。
po
gdb ウィンドウで、オブジェクトの検査に使用できます。
与えられた:
NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
[dict setObject:@"foo" forKey:@"bar"];
[dict setObject:@"fiz" forKey:@"buz"];
オブジェクトが追加された後にブレークポイントを設定すると、辞書の内容を調べることができます
(gdb) po dict
{
bar = foo;
buz = fiz;
}
もちろん、これらはNSString
きれいに印刷されるオブジェクトです。YMMV と他の複雑なオブジェクト。
任意のオブジェクト (ObjC または Core Foundation) 変数を右クリックして、[説明をコンソールに出力] を選択できます (これも [実行] -> [変数ビュー] にあります)。これにより、オブジェクトの-debugDescription
メソッドの結果が出力されます。これは、デフォルトで を呼び出します-description
。残念ながら、NSDictionary
これをオーバーライドして、通常は気にしない一連の内部データを生成するため、この特定のケースではcraigbのソリューションの方が優れています.
表示されるキーと値も を使用する-description
ため、コレクションなどのオブジェクトに関する有用な情報が必要な場合は、オーバーライド-description
が必須です。私は通常、デフォルトのNSObject
実装の形式に合わせて、次の行に沿って実装します。
-(NSString *) 説明 { return [NSString stringWithFormat:@"<%@ %p>{foo: %@}", [self クラス], self, [self foo]]; }
CFShow() を使用できます
NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
[dict setObject:@"foo" forKey:@"bar"];
[dict setObject:@"fiz" forKey:@"buz"];
CFShow(dict);
出力に表示されます
{
bar = foo;
buz = fiz;
}
XCode 4.6 には、役立つ次の機能が追加されています。
The elements of NSArray and NSDictionary objects can now be inspected in the Xcode debugger
コンソールにオブジェクト全体を出力しなくても、これらのオブジェクト タイプを検査できるようになりました。楽しみ!
あなたのdictをクリックしてから、小さな「i」アイコンをクリックしてください。それは仕事をするはずです:-)
NSLogも使用できます。
また、デバッグ領域または xcode に移動してAll Variables, Registers, Globals and Statics
、変数を見つけて選択することもできます。それを右クリックします。次に選択しますPrint description of "...."
それが役に立てば幸い!