NSDate ivar成为<not an =“”objective-c =“”object =“”>?</not>

时间:2013-02-24 08:24:29

标签: ios objective-c nsdate

- (id)initWithCoder:(NSCoder *)aDecoder
{
   dueDate = [NSDate date];

}

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
    [formatter setDateStyle:NSDateFormatterShortStyle];
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    self.lbDueDate.text = [formatter stringFromDate:dueDate];
}

在init方法中,我声明了dueDate = [NSDate date]。但是当我调试时,在这一行

    self.lbDueDate.text = [formatter stringFromDate:dueDate];

输出:(NSDate *)dueDate = 0x0c497390 那发生了什么?

1 个答案:

答案 0 :(得分:0)

这意味着对象已被-dealloc编辑(除非它是nil)。因此,在运行静态分析器并查看代码之后,与Zombies一起运行并更频繁地发送消息。

来源中的一个问题:dueDate = [NSDate date];应为dueDate = [[NSDate date] copy];。另一个问题是你不能通过超类来打电话。在-initWithCoder:

的实施中指定初始值设定项