我是新来的对象语言。
我很难理解内存管理语法。
我的代码如下:

NSDate* someDate;
someDate=[[NSDate alloc] init];
loop
{
   someDate=[[NSDate alloc] init];
}

这里会有内存泄漏吗?或者返回的nsdate对象是[autorelease]?
谢谢

最佳答案

正如DavidKanarek所说,你会有漏洞的。
有很多方法可以修复这些泄漏:

NSDate* someDate;
someDate=[NSDate date];
loop
{
   someDate=[NSDate date];
}


NSDate* someDate=nil;
someDate=[[NSDate alloc] init];
loop
{
   [someDate release];
   someDate=[[NSDate alloc] init];
}

[someDate release];

第一种是更容易阅读的代码,但是第二种代码可以让你的内存使用尽可能地低。如果你的圈不太大,用第一个。如果你经历了几千次循环,我会使用第二次。
山姆

08-05 23:04