我想知道是否可以使用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
功能在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對象。 –