Моя настройка следующая: у меня есть цель приложения App
с пользовательским классом Foo
, который используется в параметре протокола, который используется для связи через XP C. AppDelegate для App
реализует этот протокол, например:
@objc(Foo) class Foo { ... }
protocol XPCProtocol {
func myFunc(foo: Foo)
}
class AppDelegate: NSApplicationDelegate, XPCProtocol {
...
func myFunc(foo: Foo) { ... }
}
В моем случае myFunc
никогда не вызывается из цели моего приложения App
, но другим процессом через XP C. Однако, похоже, что App
никогда не вызывает его, и это единственное использование Foo
, класс Foo
, кажется, не компилируется (всякий раз, когда я вызываю myFunc
из другого процесса, он говорит, что Foo
не загружен или не существует).
Еще одним свидетельством того, что это проблема компиляции, является тот факт, что если я просто создаю экземпляр Foo
где-нибудь в App
через let _ = Foo()
, проблема исчезнет прочь. Однако я действительно предпочел бы избежать решения проблемы с компилятором таким образом.
Итак, есть ли способ пометить мой класс Foo
, чтобы компилятор всегда включал его? У меня уже отключена оптимизация компилятора Swift в моих настройках сборки XCode, поэтому я не уверен, что еще я могу сделать.