Связывание инфраструктуры stati c будет встраивать код в инфраструктуру в вашем приложении, и все классы инфраструктуры будут, по сути, частью основного пакета, в отличие от динамических библиотек c.
Тем не менее, есть хороший способ использовать ресурсы из инфраструктуры c, и этого можно достичь, создав пакет ресурсов, который будет связан с инфраструктурой c, а затем загрузите ресурсы, указав к этому пакету.
- В своем проекте c Framework создайте новый пакет
- Измените базовый пакет SDK на
Latest iOS
или любую платформу, с которой вы будете sh поддержка на вкладке Build Settings
пакета - Из инспектора проекта добавьте пакет в качестве целевой зависимости в библиотеку stati c на вкладке
Build Phases
- В своем тестовом приложении после связывания платформы stati c добавьте комплект ресурсов в список
Copy Bundle Resources
на вкладке Build Phases
.
Это для настройки, теперь вы можете n используйте его в коде:
guard let bundlePath = Bundle.main.path(forResource: "<your bundle name>" ofType: "bundle"),
let bundle = Bundle(path: bundlePath) else { return }
let viewController = MyViewController(nibName: "<your nib name>" bundle: bundle)
Этот код можно также использовать внутри структуры stati c, но вы должны всегда помнить, что пакет ресурсов всегда должен добавляться в Copy Bundle Resources
каждого приложения, использующего эту платформу.
В случае динамических c библиотек / каркасов классы будут загружаться динамически из своего пакета, поэтому доступ к ресурсам более прост.