Подтвердить что ты не робот

KVC в подклассе UITableView вызывает сбой при доступности

У меня есть собственный подкласс UITableView, в котором я переопределяю +accessInstanceVariablesDirectly, чтобы возвращать NO, чтобы гарантировать, что атрибуты без setter не могут быть установлены с помощью KVC.

При удалении этого представления таблицы из иерархии представлений приложение аварийно завершает работу - иногда - и теперь для странной части: только если включена возможность доступа! (т.е. инспектор доступности доступен или у вас есть доступность на физическом устройстве)

Если я не переопределяю +accessInstanceVariablesDirectly, все работает нормально. Я полагал, что, возможно, UITableView полагается на доступ к некоторым переменным экземпляра напрямую - но тогда в чем смысл этого метода, если я могу сломать суперклассы, используя его? Есть ли способ указать это поведение для каждого атрибута, например +automaticallyNotifiesObserversForKey:? Однако я сбиваю с толку тот факт, что эта проблема существует только в том случае, когда доступна специальность.

Я попытался проанализировать проект с помощью различных инструментов, но безуспешно.

Вы можете найти минимальный проект, воспроизводящий проблему здесь. Я был бы очень признателен за любые указания, почему это происходит или как добиться того, чего я хочу, тем не менее.

4b9b3361

Ответ 1

Эта проблема, как представляется, исправлена ​​в iOS 9.