Я снова прихожу в улей за помощью!
Я использую CocoaPods, и у меня есть X-swift.h
, чтобы выставить Swift code to
Objective-C`.
Представьте себе следующую ситуацию:
NetworkService
наследует класс Siesta Service
(Siesta добавлен через CocoaPods) и равен public
.Поскольку класс Siesta Service
на самом деле является NSObject
, мой тип NetworkService
будет открыт для показа через Objective-C
через заголовок X-swift.h
, и компилятор отправит мне горе и слезы, поскольку X-swift.h
не делаетне знаю, что такое Service
(или BOSService
, если быть точным).Заголовок X-swift.h
не ссылается на платформы, предоставляемые CocoaPods, поэтому заголовок не имеет представления о том, что представляют собой некоторые типы из библиотек, добавленных через CocoaPods.
Другим примером этого является GoogleMapsSDK
.Для соответствия типа Swift GMSMapViewDelegate
требуется, чтобы он был NSObject
, таким образом, автоматически выставляя его через заголовок X-swift.h
и вызывая ту же проблему сборки.
Я временно решил эти проблемы, обернув ихNSObject
типов с чистыми типами Swift (чтобы они не экспортировались через заголовок X-swift.h
), но я чувствую, что для этого должно быть более надежное решение.
Жду возможности услышать мысли оэто!