OC 内存管理实战

注意点:

在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];
}

猜你喜欢

转载自xiaoxuejie.iteye.com/blog/1672615