编写初始化方法

在编写初始化方法时,应该遵循以下规则:

  1. 如果某个类有多个初始化方法,那么应该由其中的一个方法来完成实际的任务,该方法称为指定初始化方法。其他的初始化方法都应该直接或间接的调用指定初始化方法。
  2. 指定初始化方法应该先调用父类的指定初始化方法,然后再对实例变量进行初始化。
  3. 如果某个类的指定初始化方法与父类的方法名不同,就必须覆盖父类的指定初始化方法,并调用新的指定初始化方法。
  4. 如果一个类有多个初始化方法,就应该在相应的头文件中明确的注明,哪个方法时指定初始化方法。  

有时候我们在定义子类时,即使正确覆盖了父类的初始化方法,偶尔也会出现问题,比如出于安全考虑。

如果要求必须使用指定初始化方法,最佳的解决方法是修改父类的指定初始化方法,然后通过某种途径告知程序员不能调用这个方法。

-(id)init{

    @throw [NSException exceptionWithName:@"SafeInitialization"

                                reason:@"use initWithSecretCode:,not init"

                                  userInfo:nil;

}

 

posted @ 2014-01-01 18:20  闲心  阅读(193)  评论(0)    收藏  举报