Свифт импорта однозначных протоколов с тем же именем - PullRequest
0 голосов
/ 06 июня 2019

У меня два модуля, и мне интересно, можно ли создать экземпляр класса Game Manager с помощью моего менеджера викторин, как показано на схеме: enter image description here

Итак, мыиметь менеджер тестов, который соответствует протоколу менеджера тестов, и использует вопросы, которые соответствуют протоколу вопросов.Это хранится в модуле (и создается в моем приложении).

В отдельном модуле у меня есть идентичный (но, очевидно, другой экземпляр) протокол вопросов и протокол менеджера викторин, а менеджеру игры требуется менеджер викторинв пределах определения init.

Проблема, с которой я сталкиваюсь, находится внутри приложения. Мне нужно доказать менеджер викторин, соответствующий протоколу менеджера викторин, однако экземпляр протокола менеджера викторин, которому нужно соответствовать, находится внутри менеджера игр.порт назначенияЯ не могу использовать его, поскольку протокол вопроса - это другой экземпляр протокола вопроса.

Я пробовал разные вещи, такие как

extension GameManager.QuestionProtocol where Self: QuizManager.QuestionProtocol {}
extension QuizManager.QuestionProtocol where Self: GameManager.QuestionProtocol {}
extension GameManager.QMProtocol  where Self: QuizManager.QuizManagerProtocol {}
extension QuizManager.QuizManagerProtocol  where Self: GameManager.QMProtocol {}

Чтобы попытаться получить протоколы ксоответствуют друг другу, но безрезультатно.

Является ли единственное решение для объединения моих модулей менеджера викторин и игрового менеджера, поскольку они слишком похожи (как в случае использования одних и тех же протоколов)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...