【发布时间】:2009-08-06 19:02:02
【问题描述】:
我有一个由
创建的NSDate 对象
NSDate *date = [[NSDate alloc] init];
稍后,我想将日期重置为“现在”,所以我认为
[date init];
或
date = [date init];
可能会完成这项工作,但他们不会。相反,
[date release];
date = [[NSDate alloc] init];
有效。我对此有点困惑,因为在- (id) init 的文档中,它说:
返回一个初始化为当前日期和时间的 NSDate 对象。
既然date 已经分配好了,它不应该只需要一个init 消息吗?
【问题讨论】:
-
日期是不可变的,不能更改。如果您想要现在的时间,您需要创建一个新日期。请参阅下面 Quinn 的回答,特别是:init。在任何给定对象上多次调用 init 总是一个编程错误。
标签: objective-c memory-management initialization nsdate