Вызов код C из Swift

К уже имеющемуся проекту на Swift можно добавить функционал на языке «С».
Для этого в Xcode создайте новый файл «*.c»

После создания файла Xcode сам предложит создать файл «моста»
Таким же образом можно создать мосты и с C ++, Objective-C.


Давайте создадим прототип функции  для кода C в файле (factorial.h):

#ifndef factorial_h
#define factorial_h

#include

long factorial(int n);

#endif /* factorial_h */

Реализуем метода в (factorial.c):

#include "factorial.h"

long factorial(int n) {
    if (n == 0 || n == 1) return 1;
    return n * factorial(n-1);
}

Далее в файле «моста» (write_to_file-Bridging-Header.h) импортируйте файл заголовка C :

#include "factorial.h"

Все! Можно использовать функцию в коде на Swift :

print("Hello \(factorial(5))!")

Оригинальная статья