Сгенерированный Objective-C заголовок интерфейса и CocoaPods - PullRequest
0 голосов
/ 09 октября 2018

Я снова прихожу в улей за помощью!

Я использую 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), но я чувствую, что для этого должно быть более надежное решение.

Жду возможности услышать мысли оэто!

...