复制NSDate对象并释放

时间:2012-06-29 23:43:39

标签: objective-c ios nsdate

如果我这样做:

NSDate *dateStart;
[dateStart alloc];

// Initialise with a date somewhere here..

..

// Modify the start date.
dateStart = [chosenDate copy];

我应该在分配dateStart指针之前做[dateStart release]吗?

我来自C / C ++背景,我不了解整个ObjectiveC / iOS垃圾收集行为(如果确实有的话)。我的C背景告诉我,我应该释放dateStart指向的初始NSDate对象。这是对的吗?

1 个答案:

答案 0 :(得分:2)

是的,因为您在应该在此行之前释放它之前已经分配了它

//Release it before reassign
[dateStart release];
dateStart = [chosenDate copy];

另请注意,它首选您在同一行上进行分配和初始化,不要将它们分成多行

所以这个

NSDate *dateStart;
[dateStart alloc];

会改为

NSDate *dateStart = [[dateStart alloc] init....];