Chinaunix首页 | 论坛 | 博客
  • 博客访问: 114564
  • 博文数量: 42
  • 博客积分: 916
  • 博客等级: 准尉
  • 技术积分: 420
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-16 10:01
文章分类

全部博文(42)

文章存档

2011年(42)

分类: 嵌入式

2011-11-18 21:36:36

初学objective-c看到initWithCoder的一般实现方法一直不解,在cocoachina上看到牛人讲解,猛然醒悟:
- (id) initWitchCoder:(NSCoder *)aCoder
{
if(self = [super init])
{
self.var = [aCoder decoderObjectForkey:keyValue];
}
}

论坛的讲解如下:
这个问题这么分析. 我们要完成的工作是对子类对象进行初始化.
这个我们可以把这个子类对象的初始化分成两部分: 继承自父类的对象的初始化 + 子对象本身对象的初始化.
所以[super init] 其实是对父类对象进行初始化, 
if( self = [super init] )
{
       //init local vars
}
在括号里面再对子类新增对象(也可以对父类对象)的初始化操作.

self = [super init] 其实就是"subclass is a instance of the superclass"这条面向对象原则的体现.

给出链接:
阅读(3034) | 评论(0) | 转发(0) |
0

上一篇:initWithCoder两种版本的实现说明

下一篇:没有了

给主人留下些什么吧!~~