2012-05-28 4 views
4

나는 uview의 이름이 subview1입니다. 특정 상황에 따라이 뷰를 하위 뷰로 추가합니다. 지금은 obserValueForKeypath 기능이 iOS : addObserver 및 superview 쿼리

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{ 
if (self.subView1 == (UIView*)object) { 
     if ([keyPath isEqualToString:@"superview"]) { 
      NSLog(@"superview changed %@",change); 

     } 
    } 
} 

내가 여기서 뭔가 잘못하고 있습니까 호출되지 않습니다 다음 코드를

[subView1 addObserver:self forKeyPath:@"superview" options:NSKeyValueObservingOptionNew context:nil]; 

내 문제가되고있다.

+0

.h와 .m 파일을 모두 표시 할 수 있습니까? –

+0

사과에 따르면 : "클래스가 속성에 대한 KVO 변경 알림을 방출해야합니다." UIView가'superView'에 대한 KVO 변경 알림 (즉,'willChangeValueForKey :'및'didChangeValueForKey :'호출)을 방출하는지 확신하지 못합니다. – vakio

답변

-1

블록이 처음 인 경우 문제가 발생했는지 확인하십시오. 다른 클래스에있는 경우 관찰자를 설정하는 변수에 대해 속성을 선언했는지 확인하십시오.

+0

아니, 블록을 입력하고 yes도 두 번째 부분을 확인 dosent. observerValueForKeyPath가 호출되지 않습니다. – Jefferson

관련 문제