UITableView 子类中的 KVC 在启用可访问性的情况下导致崩溃
KVC in UITableView subclass causing crash with accessibility enabled
我有一个自定义 UITableView
子类,我在其中将 +accessInstanceVariablesDirectly
覆盖为 return NO
以确保无法设置没有 setter 的属性使用 KVC。
从视图层次结构中删除此 table 视图时,应用程序崩溃 - 有时 - 现在是奇怪的部分:只有在启用辅助功能时! (即辅助功能检查器可见,或者您在物理设备上启用了辅助功能)
如果我不覆盖 +accessInstanceVariablesDirectly
,一切正常。我想也许 UITableView
依赖于直接访问一些实例变量——但是如果我可以通过使用它来破坏超类,那么这个方法有什么意义呢?有没有办法为每个属性指定此行为,例如 +automaticallyNotifiesObserversForKey:
?但是,我感到困惑的是,这个问题只在启用辅助功能时才存在。
我尝试用各种仪器分析项目,但没有成功。
您可以找到一个重现该问题的最小项目here。对于为什么会发生这种情况或如何实现我想要的任何指示,我将不胜感激。
此问题似乎已在 iOS 9.
中得到解决
我有一个自定义 UITableView
子类,我在其中将 +accessInstanceVariablesDirectly
覆盖为 return NO
以确保无法设置没有 setter 的属性使用 KVC。
从视图层次结构中删除此 table 视图时,应用程序崩溃 - 有时 - 现在是奇怪的部分:只有在启用辅助功能时! (即辅助功能检查器可见,或者您在物理设备上启用了辅助功能)
如果我不覆盖 +accessInstanceVariablesDirectly
,一切正常。我想也许 UITableView
依赖于直接访问一些实例变量——但是如果我可以通过使用它来破坏超类,那么这个方法有什么意义呢?有没有办法为每个属性指定此行为,例如 +automaticallyNotifiesObserversForKey:
?但是,我感到困惑的是,这个问题只在启用辅助功能时才存在。
我尝试用各种仪器分析项目,但没有成功。
您可以找到一个重现该问题的最小项目here。对于为什么会发生这种情况或如何实现我想要的任何指示,我将不胜感激。
此问题似乎已在 iOS 9.
中得到解决