Я использую HockeyApp для отчетов о сбоях. Я заметил сбой, который происходит часто и только с iOS 9.1. Сбой происходит, когда текстовое поле становится первым ответчиком, который также вызывает установку делегата UITableView. Сначала я изо всех сил пытался размножаться, но теперь я могу воспроизводить все время. Все, что мне нужно сделать, это включить инспектор специальных возможностей, и мое приложение рухнет. Причина сбоя: «Причина: имя селектора найдено в текущих регистрах аргументов: _accessibilitySetRetainedValue: forKey:», и сбой — это «SIGSEGV». Любые мысли о том, как это можно исправить?
iOS 9.1 аварийно завершает работу приложения при включенном инспекторе специальных возможностей
Ответы (1)
Мы столкнулись с чем-то подобным, что было вызвано чем-то вроде следующего:
@property (nonatomic, strong) id<UITableViewDelegate> delegate;
@property (nonatomic, strong) UITableVIew *tableView;
...
self.delegate = newDelegate;
self.tableView.delegate = newDelegate;
Исходный делегат освобождается, что обычно не является проблемой. Но, насколько мы можем судить, когда доступность включена, что-то там имеет assign
ссылку на исходный делегат, а когда установлен новый делегат, что-то пытается очистить эту ссылку. Которого больше нет.
TL;DR: не освобождайте исходный делегат перед назначением нового в tableview:
self.tableView.delegate = newDelegate;
self.delegate = newDelegate;
person
kejadlen
schedule
26.10.2015
Это именно то, что происходит. Спасибо!
- person jherg; 27.10.2015
Столкнулся с тем же самым, за исключением самого VoiceOver на устройстве. Я предположил, что VoiceOver может добавлять сильные ссылки на определенные объекты, чтобы при необходимости (или что-то в этом роде) продолжать говорить. В сценарии с несколькими сильными ссылками вам всегда приходилось обнулять ваши слабые делегаты и тому подобное... Я думаю, сейчас мы находимся в ситуации, когда нам нужно обнулить делегатов даже для сценариев с одним сильным референсом, поскольку VoiceOver может добавить другие сильные стороны в миксе. Опять же, это не подтверждено, но пахнет примерно так. Возможно, можно было бы провести тест на подсчет ссылок!
- person TahoeWolverine; 05.11.2015
UITableView
уже есть делегат, и вы устанавливаете для него нового делегата? - person kejadlen   schedule 27.10.2015