KVO exc_bad_access (код =1)
- (void)setTableView:(UITableView *)tableView {
_tableView = tableView;
[_tableView addObserver:self
forKeyPath:@"frame"
options:0
context:nil];
[self updateFrame];
}
Exc_bad_access происходит при попытке добавить наблюдателя.
В коде сборки код ошибки - "NSKeyValueObserverRegistrationLock".
Понятия не имею, что является причиной ошибки.
Я запускаю XCTest, так что может быть вероятность того, что ошибка была вызвана введением тестового кода в код приложения.
Кто-нибудь помогает?
1 ответ
Пара вещей.
Вы должны определить свой параметр параметров. Структура 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];