Lazy Instantiation和Designated Initailization

Lazy Instantiation即被动初始化,当需要用到某个property时,再在此property的getters中进行初始化,例如

- (Foo *)aFoo
{
    if (!_aFoo) {
        _aFoo = [[Foo alloc] init];
    }
    return _aFoo;
}

Designated Initailization即指定初始化方法,一般为默认初始化(init),有时候会自己定义指定初始化方法,这时必须重写默认初始化init返回nil,以防止初始化失败,并在自定义初始化方法中调用[super init],如下

- (id)initWithCount:(NSUInteger)count
{
    self = [super init];
    if (self) {
        //...
    }
  return self; }

 

posted @ 2013-02-17 15:50  Story Of My Life  阅读(502)  评论(0编辑  收藏  举报