Swift "Passerelle-En-Tête.h " file ne me permettant pas d'instancier les classes objective-C.fichiers swift

quand X-code essaie de créer un en-tête de pont automatiquement, il se bloque à chaque fois, donc j'ai suivi les instructions sur la façon de créer manuellement un en-tête de pont. (Créez-en un .h fichier, le nom -un pont-d'en-Tête.h, d'importer toutes les .vous avez besoin de fichiers h?)

Problème c'est que quand j'essaie d'instancier une classe dans la .le fichier swift qui est inclus dans cet en-tête, rien ne se passe (il dit que la classe n'existe pas) aussi, dans l'en-tête passerelle il ne semble pas la saisie semi-automatique de mes noms de fichiers lorsque j'essaie de les comprendre, m'amenant à croire somethings ne pas lier correctement.

quelqu'un A courir dans tout cela? Personne ne sait comment résoudre ce problème?

20
demandé sur Andy Tsen 2014-06-08 06:06:31

5 réponses

Vous devez l'ajouter à votre cible paramètres de construction:

  1. dans Xcode, si vous allez dans les paramètres de construction de votre cible, et faites défiler tout le chemin vers le bas, vous trouverez une section "Swift Compiler - génération de Code".

  2. définir "Objectif-C en-tête de pont" à <#PROJECT_NAME>-Bridging-Header.h

  3. Je ne suis pas sûr de la valeur correcte pour "Install Objective-C Compatibility Header", mais c'est un oui/non, donc vous pouvez basculer que si cela ne fonctionne pas à premier.

72
répondu Nate Cook 2014-10-09 23:08:14

j'ai essayé de créer un en-tête de pont moi-même mais pour une raison quelconque Xcode ne l'a pas aimé. Donc j'ai supprimé mon personnalisé, importé un fichier Obj C qui a fait Xcode demander si je voulais qu'il en crée un pour moi.

j'ai cliqué oui, et ça a marché!

8
répondu Sean 2014-06-08 03:24:12

1) Créer un fichier appelé "FMDB-Bridging-Header.h"

dans ce fichier, tapez ce qui suit:: #import "FMDB.h"

3) Allez à Paramètres de construction - > compilateur Swift-génération de Code - ajouter à "en-tête de Pont objectif-c": FMDB-en-tête de Pont.h

ou si il a été placé à l'intérieur d'un dossier de votre projet:

Nomdossier/FMDB-André-d'en-Tête.h

4
répondu K.D 2015-03-12 07:26:49
  1. Ajouter un fichier d'en-tête à votre projet avec le nom "[your-project-name]-Bridging-Header.h

  1. allez à Paramètres de construction > construisez des Options et définissez" le contenu intégré contient du Code Swift "à" Oui" enter image description here

  2. aller aux paramètres de construction > lier et ajouter "@executable_path / Frameworks" pour lancer la recherche Chemin enter image description here

Construisez votre projet maintenant!

1
répondu Furqan Khan 2015-08-15 12:00:26

cela pourrait aider à définir le nom de l'en-tête de pont avec sa racine de projet, comme "MyProject/MyProject-Bridging-Header.h" dans la valeur de chaîne de caractères du compilateur Swift Build key 'Objective-C Bridging Header'

0
répondu Nicola Coppola 2015-01-24 20:06:37