黑马程序员-iOS基础-Objective-C基础(六)

来源:互联网 发布:金字塔期货软件骗局 编辑:程序博客网 时间:2024/06/02 20:11

-----------android培训java培训、java学习型技术博客、期待与您交流!------------

初始化

我们可以创建一个初始化方法去给类的实例的成员变量赋初值:

  1. - (id) init  
  2.  
  3. {  
  4.  
  5. if ( self = [super init] )  
  6.  
  7. {  
  8.  
  9. [self setCaption:@"Default Caption"];  
  10.  
  11. [self setPhotographer:@"Default Photographer"];  
  12.  
  13. }  
  14.  
  15. return self;  
  16.  
  17. }  
  18.  

上面的代码感觉没啥好解释的,虽然第二行代码好像看上去没啥用。这个是一个单等于号,就是把[super init]的值赋给了self。

它基本上是在调用父类去实现它的初始化。这个if代码段是设置默认值之前验证初始化是否成功。

释放资源Dealloc

这个dealloc方法是在当一个对象希望被从内容里面删除的时候调用。这个我们释放在子类里面引用成员变量的最好的时机:

  1. - (void) dealloc  
  2.  
  3. {  
  4.  
  5. [caption release];  
  6.  
  7. [photographer release];  
  8.  
  9. [super dealloc];  
  10.  
  11. }  
  12.  

开始两行我们发送了release通知给了两个成员变量。我们不要在这里用autorelease。用标准的release更快一点。

最后一行的[super dealloc];非常重要。我们必须要发送消息去让父类清除它自己。假如不这么做的话,这个对象其实没有被清除干净,存在内存泄露。

dealloc在垃圾回收机制下不会被调用到。取而代之的是,我们需要实现finalize方法。

 

 

0 0
原创粉丝点击