0
我在記錄自定義對象時遇到了一些麻煩。Objective c自定義對象描述問題
爲例與DateObject類:
部首
@interface DateObject : NSObject {
NSString *month;
NSString *day;
NSString *year;
}
@property (nonatomic, retain)NSString *month;
@property (nonatomic, retain)NSString *day;
@property (nonatomic, retain)NSString *year;
- (NSString *)description;
實現:
#import "DateObject.h"
@implementation DateObject
@synthesize month, day, year;
- (NSString *)description{
NSString *result = [NSString stringWithFormat:@"{\n\tMonth:\t%@\n\tDay:\t%@\n\tYear:\t%@\n}",self.month, self.day, self.year];
return result;
}
@end
現在我設置這樣的值:
DateObject *date = [[[DateObject alloc] init] autorelease];
date.month = @"Mar";
date.day = @"04";
date.year = @"2013";
記錄對象與此
NSLog(@"{\n\tMonth:\t%@\n\tDay:\t%@\n\tYear:\t%@\n}",date.month, date.day, date.year);
結果(如預期)在
2013-03-04 10:42:08.821 LoggingCustomObjectsExample[4389:c07] {
Month: Mar
Day: 04
Year: 2013
}
現在試圖與
NSLog(@"%@", date);
我期待得到所謂我description
方法記錄對象(它實際上不會被調用),但結果始終未格式化:
2013-03-04 10:59:18.835 LoggingCustomObjectsExample[4389:c07] DateObject: "{\n\tMonth:\tMar\n\tDay:\t04\n\tYear:2013}";
我不明白爲什麼轉義序列不在這裏工作。 我錯過了什麼嗎?
感謝您的快速回復,我不知道這是一個已知的行爲。我只是認爲這會很高興有一個格式化的日誌,如記錄一個NSArray – pmk 2013-03-04 10:16:34
你可能仍然可以,只是不使用'NSLog()'。 (我不會在生產代碼中使用'NSLog()',並依賴於我自己的日誌代碼)。 – trojanfoe 2013-03-04 10:19:42
請問你爲什麼不使用NSLog()?我一直在使用NSLog()...這有什麼不好? – pmk 2013-03-04 10:23:27