2014-10-17 7 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]; 
Смежные вопросы