Класс не найден при вызове класса с намерением

Я думаю, вы можете добраться туда, добавив (пустое) расширение к UIViewController, а затем указав свой атрибут detailViewController, используя составленный протокол пустого расширения и ваш DetailViewController. Например:

protocol UIViewControllerInject {}
extension UIViewController : UIViewControllerInject {}

Теперь все подклассы UIViewController удовлетворяют протоколу UIViewControllerInject. Тогда с этим просто:

typealias DetailViewControllerComposed = protocol<DetailViewController, UIViewControllerInject>

class MasterViewController : UITableViewController {
  var detailViewController : DetailViewControllerComposed?
  // ...
}

Но это не особенно «естественно».

=== Edit, Дополнение ===

Фактически , вы можете сделать это немного лучше, если вы определите свой DetailViewController, используя мой предложенный UIViewControllerInject. Например:

protocol UIViewControllerInject {}
extension UIViewController : UIViewControllerInject {}

protocol DetailViewController : UIViewControllerInject { /* ... */ }

, и теперь вам не нужно явно что-то компилировать (мой DetailViewControllerComposed) и использовать DetailViewController? как тип для detailViewController.

0
задан Abid Khan 5 March 2019 в 03:53
поделиться

2 ответа

Одним из возможных решений, которое я также пробовал, было отключение функции «Быстрый запуск». Перейти к Файл -> Настройки -> Построение, выполнение, развертывание -> Мгновенный запуск -> Снимите флажок для мгновенного запуска .

Очистите свой проект перед запуском на вашем устройстве.

Редактировать

Обязательно включите опцию multidex , если ваше приложение и библиотеки, на которые оно ссылается, превышают ограничение в 65 тыс. Методов . Для поддержки мультидекса в сборке Gradle добавьте зависимости

dependencies {
  implementation 'com.android.support:multidex:1.0.3'
}

А в defaultConfig добавьте multiDexEnabled

defaultConfig {
        ...
        minSdkVersion 21 
        targetSdkVersion 28
        multiDexEnabled true
    }

Для получения дополнительной информации о мультидексе, пожалуйста, посетите ссылку разработчика Android [118 ]

0
ответ дан Abid Khan 5 March 2019 в 03:53
поделиться

Это просто проблема Android IDE, мы можем игнорировать это.

0
ответ дан SimTO 5 March 2019 в 03:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: