У меня есть быстрый проект (организованный Swift Package Manager), который включает в себя цель фреймворка и исполняемую цель, которая ссылается на фреймворк.Обе цели ссылаются на системный модуль C.Раньше все было внутри цели исполняемого файла, но я начал перемещать некоторые части в каркас, чтобы сделать их более пригодными для повторного использования.
Что странно, мои расширения типов C, объявленные в модуле платформы, недоступны внутри исполняемой цели,Например, у меня есть много удобных инициализаторов, таких как:
import Clib
public extension ClibStruct {
public init(width: UInt32, height: UInt32) {
self.init()
self.width = width
self.height = height
}
}
Если я вызываю этот инициализатор в рамках целевого фреймворка (где он объявлен), все работает отлично.Однако, если я вызываю его из исполняемого целевого объекта, я получаю сообщение об ошибке:
Cannot invoke initializer for type ClibStruct with an argument of type...
Это ограничение расширений или существует обходной путь или вариант сборки для его исправления?