У нас большая проблема с текущей версией Xcode (10.2).
Существует класс BasicViewController
со следующей сигнатурой:
class BasicViewController: UIViewController, UITableViewDataSource, UITableViewDelegate
Затем у нас есть другой класс, напримерExampleViewController: BasicViewController
с некоторой дополнительной логикой.
Теперь самое сложное ...
Мы создаем и запускаем приложение на разных симуляторах и устройствах, и все работает правильно.Затем мы архивируем приложение, и внезапно didSelectRow
больше не запускается.Глубокая чистота проекта позволила нам воспроизвести проблему без необходимости повторного архивирования.
Я не могу вспомнить ни одного случая, когда это могло произойти.И это становится еще хуже, потому что я обнаружил больше подобных проблем с методами UITableViewDelegate
, которые не вызывались в дочернем классе только при запуске архивированного приложения.Может ли быть проблема с некоторыми оптимизациями во время архивирования и отправки приложения?
Я проверяю, что мы правильно установили dataSource
и delegate
таблицы, над таблицей нет распознавателей жестов.Та же логика хорошо работает после запуска приложения второй / третий раз, но не удается в первый раз после глубокой очистки проекта.
Мы сделали тест и установили UITableViewDataSource
и UITableViewDelegate
в дочернем классеи тогда он работает, как и ожидалось, каждый раз.Кажется, наследование протоколов не работает хорошо.Если мы сохраняем протоколы в родительском и добавляем их в дочерний класс, то в нем говорится, что протоколы в дочернем классе являются избыточными.
Кто-нибудь испытывал что-либо подобное?Любые предложения приветствуются.