У меня есть программа 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 для этого?