编写初始化方法
在编写初始化方法时,应该遵循以下规则:
- 如果某个类有多个初始化方法,那么应该由其中的一个方法来完成实际的任务,该方法称为指定初始化方法。其他的初始化方法都应该直接或间接的调用指定初始化方法。
- 指定初始化方法应该先调用父类的指定初始化方法,然后再对实例变量进行初始化。
- 如果某个类的指定初始化方法与父类的方法名不同,就必须覆盖父类的指定初始化方法,并调用新的指定初始化方法。
- 如果一个类有多个初始化方法,就应该在相应的头文件中明确的注明,哪个方法时指定初始化方法。
有时候我们在定义子类时,即使正确覆盖了父类的初始化方法,偶尔也会出现问题,比如出于安全考虑。
如果要求必须使用指定初始化方法,最佳的解决方法是修改父类的指定初始化方法,然后通过某种途径告知程序员不能调用这个方法。
-(id)init{
@throw [NSException exceptionWithName:@"SafeInitialization"
reason:@"use initWithSecretCode:,not init"
userInfo:nil;
}

浙公网安备 33010602011771号