iPhone内存管理,一个新手问题 [英] iPhone memory management, a newbie question

查看:90
本文介绍了iPhone内存管理,一个新手问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I've seen in (Apple) sample code two types of ways of allocation memory, and am not sure I understand the difference and resulting behavior.

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

// WORKS
NSMutableArray *anArray1 = [[NSMutableArray alloc] init];
[anArray release];

失败"是指我收到崩溃/运行时警告等信息,而并非总是在我致电该发行版时就收到...

By "FAILS" I mean I get crashes/runtime warnings etc., and not always as soon as I call the release...

任何解释都值得赞赏.

谢谢

推荐答案

请记住

NSMutableArray *anArray = [NSMutableArray array];

行为类似:

NSMutableArray *anArray1 = [[[NSMutableArray alloc] init] autorelease];

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

So doing a release again will cause the crash as you are trying to release an autoreleased object.

希望这对您有所帮助.

谢谢

Madhup

这篇关于iPhone内存管理,一个新手问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆