2016-05-27 4 views
0

Je ne suis pas un Pro C Pro, mais je devrais écrire du code en Objective C et y intégrer un code Swift. Je succès dans l'importation de l'en-tête généré au fichier .m:L'en-tête généré par l'interface Objective C ne peut pas être importé dans un autre en-tête

#import "<my_module>-Swift.h" 

Mais lorsque je tente d'importer le même en-tête du fichier .h il jette cette erreur: enter image description here

BTW, je veux seulement pour ajouter une variable publique qui provient d'une classe Swift à une classe obj c spécifique. J'ai essayé de mettre ces lignes aux fichiers .h et .m:

@property (nonatomic, readwrite, strong) Card *card; 

Que dois-je faire?

+1

Il suffit d'écrire '@class Card;'. – jtbandes

Répondre

1

Dans votre cas, puisque tout ce que vous devez faire est de déclarer une propriété de type Card*, vous n'avez pas vraiment besoin d'importer l'en-tête, vous pouvez simplement avant-déclarer la classe avec @class Card; avant de l'utiliser.

0

Si vous souhaitez référencer une classe Swift dans un en-tête Objective-C, vous ne pouvez pas #import le fichier *-Swift.h, mais devrait plutôt utiliser une déclaration avant décrite dans https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html, voir la section intitulée Référencer une classe Swift ou Protocole dans un En-tête Objective-C. C'est essentiellement ce que suggère @jtbandes dans le commentaire. On y est arrivé: la classe Swift que vous voulez utiliser dans Objective-C doit étendre la classe NSObject, directement ou indirectement.