为什么NSDateFormatter不返回NSString?

时间:2010-05-31 14:32:50

标签: objective-c

为什么此消息不返回字符串:

NSDate *today = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSString *formattedDate = (@"Date for today %@:", [dateFormatter stringFromDate:today]);

1 个答案:

答案 0 :(得分:2)

该表达式确实返回NSString,但没有格式化。要正确格式化NSString,请使用+stringWithFormat: method

NSString* formattedDate = [NSString stringWithFormat:@"Date for today %@:",
                           [dateFormatter stringFromDate:today]];

表达式a, b是“comma expression”。它会按顺序评估ab,并返回b的值。在您的情况下,它将仅返回日期字符串。

大多数情况下,您不想使用逗号表达式。


此外,在使用之前需要配置dateFormatter。例如,

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
...
... [dateFormatter stringFromDate:today] ...
...
[dateFormatter release];