Próbuję zrobić prosty przykład KVO, ale mam problemy.Prosty przykład KVO
To jest mój plik * .m:
#import "KVO_ViewController.h"
@interface KVO_ViewController()
@property NSUInteger number;
@end
@implementation KVO_ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self addObserver:self forKeyPath:@"number" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)incNumber:(id)sender
{
_number++;
NSLog(@"%d", _number);
}
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
NSLog(@"From KVO");
if([keyPath isEqualToString:@"number"])
{
id oldC = [change objectForKey:NSKeyValueChangeOldKey];
id newC = [change objectForKey:NSKeyValueChangeNewKey];
NSLog(@"%@ %@", oldC, newC);
}
}
@end
Uwaga: Mam przycisk, który po kliknięciu będzie inkrementować właściwość number
.
Chcę otrzymywać powiadomienia o zmianie właściwości number
.
Kod nie działa i nie mogę go określić.
'self.number ++ 'również działa. Za 10 minut przyjmuję twoją odpowiedź. – WebOrCode
tak też będzie działać. – codester
W całym moim czytaniu o KVO, nikt nie zadał sobie trudu, aby wspomnieć, że musisz ustawić właściwości w ten sposób, dopóki tego nie znalazłem. Dzięki. – inorganik