2014-10-17 6 views
0
- (void)setTableView:(UITableView *)tableView { 
    _tableView = tableView; 
    [_tableView addObserver:self 
       forKeyPath:@"frame" 
        options:0 
        context:nil]; 
    [self updateFrame]; 
} 

관찰자를 추가하려고하면 exc_bad_access가 발생합니다.KVO exc_bad_access (코드 = 1)

어셈블리 코드에서 오류 코드는 'NSKeyValueObserverRegistrationLock'입니다.

오류의 원인을 알 수 없습니다.

XCTest를 실행 중이므로 테스트 코드를 응용 프로그램 코드에 삽입하여 오류가 발생했을 가능성이 있습니다.

아무도 도움이 되십니까?

답변

0

몇 가지.

옵션 매개 변수를 정의해야합니다. NSKeyValueObservingOptions 구조체에는 0에 대한 항목이 없습니다. 새 값 다음에 있다면 NSKeyValueObservingOptionNew를 사용하십시오.

다음에 나열한 기능이 UIViewController에 있다고 가정합니다. UIViewController 프레임 속성이 없습니다. 그것의보기 (그래도 귀하의 tableView 않습니다) 않습니다. 난 당신이 관찰하기 위해 노력하고있는 프레임 모르겠어요,하지만 당신은 시도 할 수 있습니다 :

[_tableView addObserver:self.view 
       forKeyPath:@"frame" 
        options:NSKeyValueObservingOptionNew 
        context:NULL]; 

또는

[_tableView addObserver:tableView 
       forKeyPath:@"frame" 
        options:NSKeyValueObservingOptionNew 
        context:NULL]; 
관련 문제