说明:在init和dealloc方法执行的过程中,子类可能会处在一个不一致的状
态,所以这些方 法中的代码应避免调用访问器。子类尚未初始化,或在init和dealloc方法执行时已经被销毁,会使访问器方法很可能不可靠。 实际上,应在
这些方法中直接对 内部成员变量进行赋值或释放操作。
示例:
正确:-(id)init{
self = [super init]; if (self) {
bar_ = [[NSMutableString alloc] init]; // good }
return self; }
- (void)dealloc { [bar_ release]; [super dealloc];
}错误:
-(id)init {
self = [super init]; if (self) {
// good
self.bar = [NSMutableString string]; // avoid }
return self; }
- (void)dealloc { self.bar = nil; [super dealloc];
// avoid
}
网友评论