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

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

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

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

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

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

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

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

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

Interesting Posts

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

как я могу решить проблему памяти с помощью функции imageWithContentsoffile в iphone

Переименовать файл в DocumentDirectory

Преобразование кода PinchRecognizer Objective-C в Swift

Как создать accessibilityFrame, отличный от границ представления?

как предотвратить расширение ширины ячейки при редактировании в UITableView

Swift 3: Передача Утилита enumerateToAssignBlocks

Фильтрация UITableView из источника XML

Стратегии отладки для чрезмерного удержания в ARC?

Установка значка на значок приложения с push-уведомлениями, когда приложение находится в фоновом режиме или приложение было убито

Включая Info.plist в проект Cocoa Static Library, чтобы включить его в рамки

Как очистить UITextView … для реального

Загрузка контента из Apple, принимающего участие в покупке приложения

Понимание фонового отслеживания местоположения пользователя в iOS

Контакты контактных данных плагина cordova дублируют, а не переписывают контактные данные

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