Неправильный заголовок Module-Swift.h генерируется с импортом в себя - PullRequest
0 голосов
/ 11 февраля 2019

Так что я смешиваю swift и objc везде.У меня есть разработка под названием Renetik.У него есть некоторые расширения, написанные на swift, но это в основном объективный код c.Теперь я написал некоторый класс и использовал его в основном проекте, и хотел переместить его в модуль разработки Renetik.Когда я делаю это как-то в Renetik-Swift.h, создается неправильный импорт, и проект не компилируется.

#import <Renetik/Renetik.h>

Тогда я много экспериментировал.И обнаружил, что неправильный импорт генерируется, когда я на самом деле возвращаюсь из функции класса swift, определенной в самом модуле.Это происходит именно тогда, когда я пытаюсь сделать это в разработке Pod, где в основном цель-c.Другие быстрые расширения и классы работают просто так, когда я пытаюсь изменить какой-то класс, чтобы он возвращал класс objc, определенный в самом модуле.

Я напишу пример, когда все в порядке.Это прекрасно компилируется, и я могу вызвать функцию testMe из основного проекта:

@objc public class ReplaceMe: NSObject {
    @objc public func testMe() {
        let variable = CSResponse<NSObject>()
        variable.cancel()
    }
}

Как раз то небольшое изменение и неправильный заголовок генерируются, как я уже говорил:

@objc public class ReplaceMe: NSObject {
    @objc public func testMe() -> CSResponse<NSObject> {
        let variable = CSResponse<NSObject>()
        variable.cancel()
        return variable
    }
}

Я использую use_frameworks!в подфайле как use_modular_headers! не работают по другим причинам.Я могу настроить ветку в проекте Github, где это происходит, так как это с открытым исходным кодом.

1 Ответ

0 голосов
/ 11 февраля 2019

Так что, похоже, только возможность взлома состоит в том, чтобы создать другой модуль только для файлов Swift.Определите в podspec зависимость от выпущенной версии, а в podfile хост-приложения добавьте зависимости с :path =>.

...