У меня есть программа Swift, которая взаимодействует с библиотекой C. Эта библиотека C возвращает структуру с массивом char[]
внутри, например:
struct record
{
char name[8];
};
Определение корректно импортируется в Swift. Однако поле интерпретируется как набор из 8 Int8
элементов (набранных (Int8, Int8, Int8, Int8, Int8, Int8, Int8, Int8)
), которые я понятия не имею, как преобразовать в String
со Swift.
Нет инициализатора String
, который принимает кортеж Int8
, и не представляется возможным получить указатель на первый элемент кортежа (поскольку типы могут быть гетерогенными, что не удивительно).
Прямо сейчас, моя лучшая идея - создать крошечную функцию C, которая принимает указатель на саму структуру и возвращает name
как указатель char*
вместо массива, и пойдет с этим.
Есть ли, однако, чистый способ Swift для этого?