0
KVO
의 작은 데모를 만듭니다. 내 지식에 따라 KVO
속성 값이 변경 될 때 알림을 사용합니다. UIStepper
에 KVO
을 구현하고 싶습니다. 사용자가 UIStepper
값을 변경하면 알려 드리고 싶습니다. 다음과 같이 몇 가지 코드를 작성했습니다.UIStepper에서 KVO를 구현하는 방법
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
이 호출되지 않음을 의미합니다.
제 생각에는 무엇이 잘못되었거나 다른 해결책이 무엇인지 제안 해주십시오.
감사합니다.
좋은 일에
도움을 주셔서 감사를 변경합니다. –
한 가지 더 물어보십시오. 통지 방법에서 새로운 변경 값을 얻으려면 어떻게해야합니까? 정수로 새로운 스테퍼 값을 얻을 수 있습니까 ?? –
모든 정보가 변경 사전에 있습니다. 자세한 정보는 문서를 참조하십시오. – borrrden