[iOS diary]关于重写setter覆盖property时,出现exc_bad_access

来源:互联网 发布:淘宝直通车选词助手 编辑:程序博客网 时间:2024/06/18 08:42

譬如:

@property BOOL isEditable;-(void) setIsEditable:(BOOL)isEditable;-(void) setIsEditable:(BOOL)tmpIsEditable{    self.isEditable = tmpIsEditable;    //something else   ...        }


这样写会出现

exc_bad_access


因为

-(void) setIsEditable:(BOOL)tmpIsEditable{            self.isEditable = tmpIsEditable;            //something else            ...        }
实际上是一个自递归,会造成无限递归

因为

        self.isEditable = tmpIsEditable;</strong>
中的self.isEditable = xxx;实际上就是调用

-(void) setIsEditable:(BOOL)isEditable;
来实现的。

正确应该改成

-(void) setIsEditable:(BOOL)tmpIsEditable{               _isEditable = tmpIsEditable;               //something else               ...        }

0 0