Objective-C release与dealloc
在接下来的时间里面,我们准备为大家介绍Objective-C中的"release与dealloc",而这两个方法主要用于内存的释放管理操作。
(1)在前面的学习中,我们已经学习了在对象定义时,需要使用alloc来分配内存空间,而对象不再使
用时,就应该把分配的内存空间释放掉。
(2)每一个对象都会有一个引用数,当对象创建时,也就是定义对象并分配内存空间时,该对象的引
用数就变为1。而当不再需要对象时,可以调用release方法将引用数减1。
(3)当引用数变为0时,系统就会自动调用dealloc方法释放对象所占用的内存空间。
release调用的语法格式:
[ 对象名 release ];
格式分析:
(1)一对中括号。
(2)对象名,已经定义并分配内存空间的对象。
(3)调用release方法,这样,就可以将对象的引用数减1。
接下来,我们结合例子作进一步的学习。
//===================//
//-------定义了Role类------//
//===================//
@interface Role : NSObject
{
@public
int x;
int y;
}
@end
//-------入口函数main-----//
int main (int argc, const char * argv[]) {
Role *r1 = [ [ Role alloc ] init ]; //通过类Role定义了对象r1,并分配了内存空间与初始化,
同时,引用数变为1。
[ r1 release ]; //当r1调用release时,引用数减1,所以,引用数由1变为0,
而当引用数变为0时,系统会自动调用dealloc方法去释放对象所占用的内存空间。
}
小结:
(1)对象定义并分配内存空间时,引用数变为1。
(2)当对象调用release时引用变减1。
(3)当引用数变为0时,系统自动调用dealloc释放内存空间。
非常好,现在,我们已经掌握了Objective-C中的“release与dealloc”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”。
不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)