复制 NSDate 对象并释放



如果我这样做:

NSDate *dateStart;
[dateStart alloc];
// Initialise with a date somewhere here..
..
// Modify the start date.
dateStart = [chosenDate copy];

我应该在分配 dateStart 指针之前执行 [dateStart 发布] 吗?

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

是的,

因为您在应该在此行之前发布它之前分配了它

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

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

所以这个

NSDate *dateStart;
[dateStart alloc];

将更改为

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

最新更新