Bezdepbonusu7Программирование: статьи и ответы

Вопрос

IOS - привязка раскадровки фреймворка к ViewController для использования в основном проекте

Автор вопроса: c_m_conlanОтветов: 1

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

Мне удалось, используя пакет, передать раскадровку в основной проект, и я вижу это, когда создаю приложение. Однако добавленный ViewController, также находящийся внутри фреймворка, не связывается во время выполнения. Все классы фреймворка импортируются в основной проект.

В сообщении об ошибке говорится, что не удается найти контроллер представления.

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

Кто-нибудь сталкивался с этим раньше? Буду очень признателен за предложения по исправлению!!

Спасибо, Крис

  • ничего себе, я как раз собирался задать аналогичный вопрос, я немного застрял в том, как заставить приложение видеть раскадровку во фреймворке. ваш пакет находится внутри фреймворка или снаружи (он же является частью .a каким-то образом?), моя раскадровка когда-либо используется только внутри самого фреймворка (хорошо, пытаясь сделать это таким образом) Fonix 13.11.2013
  • Мой бандл находится вне фреймворка, как бы отдельно от файла .a. Однако он содержит раскадровку, которая находится внутри фреймворка, и у них есть взаимозависимости. c_m_conlan 13.11.2013
  • Как вы понимаете, что раскадровка используется только с фреймворком? Похоже, это может быть рабочим решением для моей проблемы.... c_m_conlan 13.11.2013
  • в моем приложении есть своего рода почтовый ящик для подключаемых модулей, который будет использоваться в других приложениях, в основном вы вызываете функцию, и появляется контроллер представления (который будет исходить из раскадровки в фреймворке), у конечного разработчика не будет доступа к фреймворкам раскадровка или что-то еще, просто вызов этой функции должен перейти в новое окно, ну, это то, чего я надеюсь достичь, я уверен, что facebooks sdk делает что-то подобное Fonix 13.11.2013
  • на самом деле, просто просматривая пакеты ресурсов facebooks sdk, они содержат только изображения, никаких раскадровок xib r... поэтому мне интересно, использовали ли они что-то подобное в своих фреймворках. Fonix 13.11.2013
  • также я сейчас нахожусь на этапе с моими пакетами, где у меня сейчас именно ваша проблема, не могу найти связанный контроллер просмотра Fonix 13.11.2013

iosframeworksviewcontrollerbundleruntime

Ответы

Ответ 1 · рейтинг 9 · Fonix

Чтобы найти связанный контроллер представления, все, что вам нужно, это -all_load -ObjC в ваших приложениях Другие флаги компоновщика в настройках сборки.

кажется, что компоновщик пропускает файлы, необходимые из-за того, что код приложения на самом деле не использует или не ссылается на ViewController, поэтому компоновщик просто пропускает его. Это заставляет его использовать ViewController при компоновке сейчас. (посмотрите этот ответ для Подробнее)

я сделал это, просто имея раскадровку фреймворков в комплекте вместе с фреймворком, я следовал этому руководству чтобы узнать, как сделать бандл для фреймворка

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы