使用说明
问题描述:
我想知道是否可以使用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
答
号的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));
据我所知,不。必须是'description'工作的Objective-C对象。 –