iphone objectiveC alloc/release问题

Iul*_*iei 4 memory iphone objective-c

我是ObjectiveC语言的新手.我无法理解内存管理语法.我的代码如下:

NSDate* someDate;
someDate=[[NSDate alloc] init];
loop
{ 
   someDate=[[NSDate alloc] init];
}
Run Code Online (Sandbox Code Playgroud)

我会在这里发生内存泄漏吗?或者返回的NSDate对象是[autorelease]?

谢谢

dea*_*rne 5

正如@DavidKanarek所说,你会有泄漏.

有许多方法可以解决这些泄漏问题:

NSDate* someDate;
someDate=[NSDate date];
loop
{ 
   someDate=[NSDate date];
}
Run Code Online (Sandbox Code Playgroud)

要么

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

[someDate release];
Run Code Online (Sandbox Code Playgroud)

第一个是更容易阅读的代码,但第二个是尽可能降低内存使用率.如果你的循环不是太大,请使用第一个.如果你经历了数千次循环,我会使用第二次.

山姆