Dar*_*ong 85 debugging xcode cocoa objective-c
有没有办法通过Xcode调试器查看NSDictionary变量的键/值对?以下是在变量窗口中完全展开时的信息范围:
Variable Value Summary
jsonDict 0x45c540 4 key/value pairs
NSObject {...}
isa 0xa06e0720
Run Code Online (Sandbox Code Playgroud)
我期待它向我展示字典的每个元素(类似于数组变量).
cra*_*igb 139
在gdb窗口中,您可以使用它po来检查对象.
给定:
NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
[dict setObject:@"foo" forKey:@"bar"];
[dict setObject:@"fiz" forKey:@"buz"];
Run Code Online (Sandbox Code Playgroud)
在添加对象后设置断点,您可以检查字典中的内容
(gdb) po dict
{
bar = foo;
buz = fiz;
}
Run Code Online (Sandbox Code Playgroud)
当然这些是NSString打印得很好的对象.YMMV与其他复杂对象.
Jen*_*ton 30
您可以右键单击任何对象(ObjC或Core Foundation)变量,然后选择"将描述打印到控制台"(也可以在Run-> Variables View中).这将打印出obejct -debugDescription方法的结果,默认情况下调用该方法-description.不幸的是,NSDictionary覆盖它会产生一堆你通常不关心的内部数据,所以在这种特殊情况下,craigb的解决方案更好.
显示的键和值也可以使用-description,因此如果您需要有关集合和其他地方的对象的有用信息,-description则必须覆盖.我通常会沿着这些行实现它,以匹配默认NSObject实现的格式:
-(NSString *) description
{
return [NSString stringWithFormat:@"<%@ %p>{foo: %@}", [self class], self, [self foo]];
}
你可以使用CFShow()
NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
[dict setObject:@"foo" forKey:@"bar"];
[dict setObject:@"fiz" forKey:@"buz"];
CFShow(dict);
Run Code Online (Sandbox Code Playgroud)
在输出中你会看到
{
bar = foo;
buz = fiz;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58839 次 |
| 最近记录: |