У меня есть собственный подкласс UITableView
, в котором я переопределяю +accessInstanceVariablesDirectly
, чтобы возвращать NO
, чтобы гарантировать, что атрибуты без setter не могут быть установлены с помощью KVC.
При удалении этого представления таблицы из иерархии представлений приложение аварийно завершает работу - иногда - и теперь для странной части: только если включена возможность доступа! (т.е. инспектор доступности доступен или у вас есть доступность на физическом устройстве)
Если я не переопределяю +accessInstanceVariablesDirectly
, все работает нормально. Я полагал, что, возможно, UITableView
полагается на доступ к некоторым переменным экземпляра напрямую - но тогда в чем смысл этого метода, если я могу сломать суперклассы, используя его? Есть ли способ указать это поведение для каждого атрибута, например +automaticallyNotifiesObserversForKey:
? Однако я сбиваю с толку тот факт, что эта проблема существует только в том случае, когда доступна специальность.
Я попытался проанализировать проект с помощью различных инструментов, но безуспешно.
Вы можете найти минимальный проект, воспроизводящий проблему здесь. Я был бы очень признателен за любые указания, почему это происходит или как добиться того, чего я хочу, тем не менее.