使用说明

问题描述:

我想知道是否可以使用description功能在Cocoa框架来记录一个struct的内容打印结构。例如:使用说明

typedef struct {float a,b,c;}list; 
    list testlist = {1.0,2.5,3.9}; 
    NSLog(@"%@",testlist); //--> 1.0,2.5,3.9 
+0

据我所知,不。必须是'description'工作的Objective-C对象。 –

号的description消息是在NSObject协议中找到的一种方法,因此根据定义,它必须是一个对象。但是,使用LOG_EXPR()宏可以更方便地进行日志调试。这将需要的对象和结构:

LOG_EXPR(testlist);

其中将输出:

testlist = {1.0,2.5,3.9};

该代码可以找到here

description是一种方法和这样只能在对象上被调用。反过来,%@格式说明符仅适用于响应description的对象。

您可以编写自己的功能,使一个漂亮的NSString与结构的内容:

NSString * pretty_string_from_list(list l){ 

    return [NSString stringWithFormat:@"<list: [%f, %f, %f]>", l.a, l.b, l.c]; 
} 

然后调用该函数,当您登录的结构:

NSLog(@"%@", pretty_string_from_list(testlist));