aamir0
(aamir0)
1
现在有一个函数是这样的
结构体原型:
struct AutoBuffer {
char *_field1;
long _field2;
unsigned int _field3;
unsigned int _field4;
unsigned int _field5;
};
- (BOOL)Pack:(struct AutoBuffer*)arg1;
我这样输出会崩溃
- (BOOL)Pack:(struct AutoBuffer*)arg1{
NSLog(@“Pack:%@”,arg1);
return %orig;
}
请问老大这种要这么进行输出
%@应该是专门针对继承自NSObject的类吧?
结构体没有现成的输出方式,只能针对其成员,选择相应的输出
aamir0
(aamir0)
3
那么我该如何获取到这个autobuffer的类进行输出? 我用%c获取后 依然崩溃
应该是类似于:
NSLog(@"%s", arg1->_field1)
吧
aamir0
(aamir0)
6
我引用了.h后不报错可以编译而且运行不崩溃了。但是输出的内容全部为null 应该不是这样的 我LLDB跟进去是有值的,源代码如下:
是不是struct标志导致出错的?
arg1的值在函数内部有没有发生变化?例如本来就是传一个空的arg1进去,在Pack:内部得到赋值?
你试试
- (BOOL)Pack:(struct AutoBuffer *)arg1
{
BOOL result = %orig;
NSLog(@"Pack: %s", arg1->_field1);
return result;
}