2015-03-17 16 views
5

Durante il tentativo di iniziare a utilizzare Swift in un quadro (tra cui l'accensione supporto per i moduli), ho cominciato a ricevere messaggi come questo:Escludendo header interni dal quadro intestazione ombrello

[snip]/<module-includes>:1:1: Umbrella header for module 'PressKit' does not include header 'NPKBaseAppearance.h' 

Le intestazioni in questione (ci sono circa dieci di essi) non sono elencati in PressKit.h, ma con una buona ragione: includono classi e categorie interne o raramente utilizzate che non desidero esporre alla maggior parte degli utenti del mio framework. (Alcuni di loro mi piacerebbe esporre in determinati luoghi, altri non dovrebbero mai essere esposti.)

Contrassegnare le intestazioni come private non sembra essere d'aiuto. Questo è un avvertimento nel progetto del mio framework, ma un errore in ogni target usando il framework, quindi non posso semplicemente ignorare il problema.

Ovviamente posso aggiungere queste intestazioni al mio header di ombrello, ma non voglio. Sto violando qualche regola del design del framework quando utilizzo i moduli? Qual è il modo consigliato per gestire questo tipo di situazione?

risposta

1

Non so se hai già risolto questo problema da solo ma hai provato a escludere le intestazioni che non vuoi esportare in un file .modulemap personalizzato?

Dai un'occhiata alla: Clang 3.7 documentation - Modules

Problemi correlati