ios set方法的注意事项

来源:互联网 发布:淘宝处罚通知 编辑:程序博客网 时间:2024/05/21 06:12

      在set方法中,你必须考虑到的是:新的值可能随时被dealloc。因此你必须通过发送retain 消息来取得对新值的所有权,进而保证dealloc 不会发生。你还必须对旧值发送release 消息。在Objective-c 中,对一个nil 发送消息是没问题。因此就算_count还没有旧值,也不会出错。你必须在[newCount retain]之后再(对旧值)发送release,因为你不想因为意外而造成dealloc(译者:意思是说,如果你先调用旧值的dealloc,再回过头来调用新值的retain,恐怕为时已晚。)

eg、

- (void)setCount:(NSNumber *)newCount {
     [newCount retain];
     [_count release];
    // Make the new assignment.
    _count = newCount;
}

原创粉丝点击