Внедрение архитектуры плагинов для iOS с использованием Bundles

Довольно широкий вопрос. Я ищу рефакторинг существующего игрового приложения, чтобы у нас была базовая платформа для игр, которые дополняются некоторой модульной архитектурой плагина. Таким образом, мы имеем:

GameCore – множество базовых классов и т. Д. GameBundle A / B / C … – комплекты с множеством подклассов из тех, что в ядре, а также множество ресурсов

Игра не будет работать вообще без конкретного пакета, который реализует саму игру. Теоретически можно было бы также разбить эти пучки и смешать и совместить. Это очень привлекательный дизайн.

Использование NSBundle, по-видимому, является самым опрятным решением, но я поражаю некоторые недостатки: Код в GameBundle должен быть связан с GameCore или он не будет компилироваться, но затем, когда код GameCore загружается из NSBundle, вы получаете дубликаты всех основных классов. Это говорит о том, что я не согласен с тем, как я приближаюсь к этому!

Это может быть легко реализовано со статическими библиотеками, но тогда невозможно легко включить ресурсы …

Итак, может ли кто-нибудь предложить работоспособную архитектуру, которая будет делать, как я желаю? Обобщить;

Абстрактный игровой ядро ​​Неопределенное количество GameBundles, добавленных к цели, которые (идеально) загружаются динамически во время выполнения.

Надеюсь, кто-то может помочь!

  • Только ресурс NSBundle: это кошерный?
  • Как преобразовать путь NSString в CFURLRef (для iOS 3.1)?
  • Кто-нибудь пытался разместить скомпилированный код в NSBundle и загрузить его во время выполнения?
  • Как загрузить изображение из Assets.car (скомпилированной версии xcassets) в NSBundle? (без использования CocoaPods)
  • Как изменить имя, отображаемое под значком моего приложения на главном экране моего устройства в iOS?
  • Организуйте файлы в проекте Xcode и программно создавайте список папок
  • загружаемый пучок для plists
  • Как создать только ресурс Bundle для iPhone
  • Загрузка файлов внешнего пакета?
  • Objective C: loadNibNamed метод: как он работает?
  • Как перенести файлы ресурсов со статической библиотекой (как обернуть ресурсы в пакет)?
  • Interesting Posts

    Наложение изображения / текста в видео swift

    Как фильтровать массив словарей с помощью словарного ключа

    Минимальный пример для создания FBO с использованием OpenGL ES 2.0 на iOS

    Миграция с помощью настраиваемой политики в Magical Record

    UIGraphicsBeginImageContext vs CGBitmapContextCreate

    Изменить URL-адрес перед загрузкой запроса в UIWebView

    NSPredicate для номера телефона

    Как вы используете SKTextureFilteringNearest с SKTextureAtlas

    NSCharacter Set использует int, но мне нужен неназначенный короткий?

    Правильный способ загрузки Nib для подкласса UIView

    NSURLSession "Ошибка загрузки HTTP kCFStreamErrorDomainSSL, -9813; Сертификат самоподписывания

    Ошибка загрузки приложения iOS в iTunes Connect: «Утилиты Symbol не удались»

    iOS Преобразование MKMapView в UIImage. Никогда не входит в блок

    Запрос Firebase для вложенного ребенка swift

    Как Firebase Analytics обрабатывает продолжительность сеанса для фоновой активности (mp3-плеер)

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.