142 votes

Comment appeler C de Swift ?

Est-il possible d’appeler des routines C de Swift ?

Beaucoup d’iOS / Apple bibliothèques sont C seulement et je voudrais encore être en mesure d’appeler ceux.

Par exemple, je voudrais pouvoir appeler le martinet de forme objc runtime libraries.

En particulier, comment vous combler iOS C en-têtes ?

110voto

Leandros Points 5916

Oui, bien sûr, vous pouvez interagir avec les Pommes C des bibliothèques. Ici est expliqué comment.
Fondamentalement, les types C, C les pointeurs, etc sont convertis en Swift objets, par exemple un C int en Swift est un CInt.

J'ai un tout petit exemple, pour une autre question, qui peut être utilisé comme un peu explenation, sur la façon de pont entre C et Swift:

principal.swift

import Foundation

var output: CInt = 0
getInput(&output)

println(output)


UserInput.c

#include <stdio.h>

void getInput(int *output) {
    scanf("%i", output);
}


cliinput-André-d'en-Tête.h

void getInput(int *output);

Ici est la réponse originale à cette question.

9voto

rickster Points 19870

Le compilateur convertit C API à Swift, juste comme il le fait pour Objective-C.

Voir interagir avec les API de l’Objective-C dans les docs.

7voto

lukas83 Points 1

Juste au cas où vous êtes nouveau à XCode comme moi et que vous voulez essayer les extraits de code affiché dans Leandro réponse:

  1. Fichier->Nouveau->Projet
  2. choisissez l'Outil de Ligne de Commande en tant que préréglage du projet et le nom du projet "cliinput"
  3. faites un clic droit dans l'explorateur de projets (panneau bleu sur la gauche) et choisissez "Nouveau Fichier..."
  4. Dans le déroulant de la boîte de dialogue nom du fichier "UserInput". Décochez la case "Aussi créer un fichier d'en-tête". Une fois que vous cliquez sur "Suivant", il vous sera demandé si XCode doit créer du pont-d'en-Tête.h fichier pour vous. Choisissez "Oui".
  5. Copiez le et collez le code à partir de Leandro de la réponse ci-dessus. Une fois que vous cliquez sur le bouton play, il doit compiler et l'exécuter dans le terminal, qui dans xcode est intégré dans le panneau du bas. Si vous entrez un nombre dans le terminal, un numéro vous sera retourné.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X