У меня есть фреймворк в Swift 2.3, который я успешно преобразовал в Swift 3.3, и он работает, как и ожидалось, в Xcode 8.3.3. Я даже вижу в нем общедоступные протоколы.
После того, как я преобразовал проект в Swift 4.1 и построил его, я не могу видеть общедоступные протоколы в заголовочном файле.
eg:
public class CommunicationManager: NSObject {
public static var sharedInstance = CommunicationManager()
}
Коммуникационный менеджер не отображается в файлах заголовков платформы Swift4. Я также пытался очистить производные данные, и это тоже не помогло.
Я проверил и попробовал следующие ссылки, но ни одна из них не помогла
Почему публичные протоколы не видны?
Обновление:
Если я изменю языковую версию Swift на Swift3.3 в Xcode 9.3, общедоступные протоколы будут видны в заголовках, а первая строка файлов .h говорит об этом
// Generated by Apple Swift version 4.1 effective-3.3 (swiftlang-902.0.48 clang-902.0.37.1)
Означает ли это, что приложение, написанное на Swift4, будет работать нормально?
open
- person Prashant Tukadiya   schedule 19.04.2018public
вopen
, что вызвало у меня ту же проблему, не мог видеть мои общедоступные протоколы. После того, как всеopen
вернулись кpublic
, они снова стали видны в заголовочных файлах. - person Amogh Shettigar   schedule 19.04.2018