Быстрые расширения для типов C не видны снаружи модуля - PullRequest
0 голосов
/ 26 августа 2018

У меня есть быстрый проект (организованный 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...

Это ограничение расширений или существует обходной путь или вариант сборки для его исправления?

...