Почему Interface Builder не видит мой класс в статической структуре? - PullRequest
0 голосов
/ 23 июня 2018

Существует проект инфраструктуры Какао с именем MyFramework с типом Mach-O, установленным на Static Library, который включает MyView.swift со следующим объявлением:

open class MyView: UIView { /* ... */ }

Между тем, еще один проект называется MyApp статически связывается со статической структурой MyFramework.Кроме того, Main.storyboard из MyApp имеет сцену, в которой есть представление, пользовательский класс которого установлен на MyView, а модуль установлен на MyFramework.

Всякий раз, когда контроллер представления, поддерживающий этосоздается сценарий, вид ведет себя по умолчанию UIView, и я вижу сообщение в консоли:

2018-06-23 18:22:29.114096+0700 MyApp[2318:415810] Unknown class _TtC15MyFramework15MyView in Interface Builder file.

Затем я добавляю к цели MyApp a MyNewView.swift со следующим объявлением:

class MyNewView: MyView {  }

Не изменяя ничего в Main.storyboard, я запускаю приложение, создается экземпляр класса MyView, он ведет себя так, как предполагается, и сообщение не появляется.

Вопрос# 1: почему это происходит?Является ли тип удаленным или не зарегистрирован в среде выполнения Objective C, если он не импортирован напрямую или на него не ссылаются нигде в коде?Или, может быть, это как-то лениво загружено?

Вопрос № 2: что я могу с ним сделать, чтобы мне не приходилось применять такие обходные пути?

Обновление :Я перезапустил Xcode, и проблема не исчезла, но все же разработчик интерфейса не предлагает MyFramework в качестве модуля при вводе в поле Module в свойствах идентификации представления и @IBInspectable из MyViewне анализируется, не отображается в конструкторе интерфейса, в атрибутах представления.

...