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”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”

 

  不要停留在理论规则上面,快动起来吧!

 

 

(通过游戏模式学习与训练,需要在电脑上运行)

进入游戏学习与训练