我正在创建KVO
. 据我所知KVO
,用于通知属性值何时发生变化。我想KVO
在UIStepper
. 我想在用户更改UIStepper
. 我做了一些代码如下。
ViewController.h
@interface ViewController : UIViewController
{
IBOutlet UIStepper *stepper;
}
@property NSInteger intToObserve;
@end
ViewController.m
@interface ViewController ()
@end
@implementation ViewController
@synthesize intToObserve;
- (void)viewDidLoad
{
[super viewDidLoad];
stepper.minimumValue = 0;
stepper.maximumValue = 1000;
[self addObserver:self forKeyPath:@"intToObserve" options:NSKeyValueObservingOptionNew context:nil];
}
- (IBAction)valueChanged:(UIStepper *)sender
{
double value = [sender value];
intToObserve = value;
}
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
NSLog(@"Notification Received");
}
@end
问题是当我点击加号按钮步进值改变但我的通知方法没有收到任何通知,甚至我在那里设置断点但控制不在那里。表示-(void)observeValueForKeyPath
未调用。
请提出一些想法,我做错了什么或解决这个问题是另一种解决方案?
谢谢你的建议。