请问参数有struct标志符的函数该怎么输出查看

现在有一个函数是这样的
结构体原型:
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的类吧?
结构体没有现成的输出方式,只能针对其成员,选择相应的输出

那么我该如何获取到这个autobuffer的类进行输出? 我用%c获取后 依然崩溃

应该是类似于:

NSLog(@"%s", arg1->_field1)

这样报错

我引用了.h后不报错可以编译而且运行不崩溃了。但是输出的内容全部为null 应该不是这样的 我LLDB跟进去是有值的,源代码如下:

是不是struct标志导致出错的?

arg1的值在函数内部有没有发生变化?例如本来就是传一个空的arg1进去,在Pack:内部得到赋值?
你试试

- (BOOL)Pack:(struct AutoBuffer *)arg1
{
    BOOL result = %orig;
    NSLog(@"Pack: %s", arg1->_field1);
    return result;
}