Существует проект инфраструктуры Какао с именем 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
не анализируется, не отображается в конструкторе интерфейса, в атрибутах представления.