您的位置:首页 > 移动开发 > IOS开发

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

2014-07-08 11:31 351 查看
譬如:

@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
               ...
        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: