我是新来的对象语言。
我很难理解内存管理语法。
我的代码如下:
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];
第一种是更容易阅读的代码,但是第二种代码可以让你的内存使用尽可能地低。如果你的圈不太大,用第一个。如果你经历了几千次循环,我会使用第二次。
山姆