KVO を使用するのはこれが初めてで、すぐに行き詰まりました。問題は、observeValueForKeyPath が呼び出されたときに、同じクラスの別のメソッドを呼び出していることです。そして、そのメソッドはアラート ビューを表示しているだけです。私が考えた単純なことですが、アラートビューは表示されません。
- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context
{
[self beginUpdate];
}
-(void)beginUpdate
{
NSLog(@"Check!");
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"message" message:@"Hi" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
}
ログメッセージが表示されます。アラート メッセージは、observeValueForKeyPath 以外のメソッドから呼び出した場合にのみ表示されます。