自定义设置器未在UIView中调用

gig*_*ari 1 iphone objective-c getter-setter ios ios5

我正在为bool属性使用自定义设置器,因为当此值更改时,我需要做一些额外的工作。这是我的实现:

MyView.h

@interface MyView : UIView 

@property (nonatomic) BOOL isSelected;

@end
Run Code Online (Sandbox Code Playgroud)

MyView.m

@implementation MyView

@synthesize isSelected;

-(void)setIsSelected:(BOOL)_isSelected
{
    self.isSelected = _isSelected;

    //Custom code that changes UI based on bool state  


}

@end
Run Code Online (Sandbox Code Playgroud)

但是,二传手没有被叫到!有人可以告诉我为什么吗?

Kud*_*oCC 5

调用设置属性和设置方法的两种方法。

1点语法:self.isSelected = YES; 2?直接调用。[set setIsSelected:YES];

@interface MyView : UIView 
@property (nonatomic) BOOL isSelected;
@end

@implementation MyView
@synthesize isSelected;
-(void)setIsSelected:(BOOL)_isSelected
{
    isSelected = _isSelected;
    //Custom code that changes UI based on bool state  
}
@end
Run Code Online (Sandbox Code Playgroud)

您的应用程序崩溃是因为您调用self.isSelected = _isSelected了setter方法,它会递归无休止地调用setter方法,直到堆栈溢出!