注意点:
在init函数[包括其拓展] 以及 dealloc 函数中,不建议使用Accessor Methods,建议的代码如下:
Don’t Use Accessor Methods in Initializer Methods and dealloc
|
|
|
Don’t Use Accessor Methods in Initializer Methods and dealloc The only places you shouldn’t use accessor methods to set an instance variable are in initializer methods and dealloc . To initialize a counter object with a number object representing zero, you might implement an init method as follows:
- init { |
self = [super init]; |
if (self) { |
_count = [[NSNumber alloc] initWithInteger:0]; |
} |
return self; |
} |
To allow a counter to be initialized with a count other than zero, you might implement an initWithCount: method as follows:
- initWithCount:(NSNumber *)startingCount { |
self = [super init]; |
if (self) { |
_count = [startingCount copy]; |
} |
return self; |
} |
Since the Counter class has an object instance variable, you must also implement a dealloc method. It should relinquish ownership of any instance variables by sending them a release message, and ultimately it should invoke super’s implementation:
- (void)dealloc { |
[_count release]; |
[super dealloc]; |
} |
|