iPhone内存管理,一个新手问题

Reu*_*ven 2 iphone memory-management

我已经在(Apple)示例代码中看到了两种分配内存的方式,并且我不确定我是否理解了差异和产生的行为.

// FAILS
NSMutableArray *anArray = [NSMutableArray array];
[anArray release];

// WORKS
NSMutableArray *anArray1 = [[NSMutableArray alloc] init];
[anArray release];
Run Code Online (Sandbox Code Playgroud)

通过"FAILS"我的意思是我遇到了崩溃/运行时警告等,并且并不总是在我发布后立即发布...

任何解释都赞赏.

谢谢

Mad*_*dav 6

请记住这一点

NSMutableArray *anArray = [NSMutableArray array];
Run Code Online (Sandbox Code Playgroud)

表现如下:

NSMutableArray *anArray1 = [[[NSMutableArray alloc] init] autorelease];
Run Code Online (Sandbox Code Playgroud)

因此,当您尝试释放自动释放的对象时,再次执行发布会导致崩溃.

希望这对你有所帮助.

谢谢,

Madhup