La conversion d'un C char tableau à une Chaîne

J'ai une Swift programme qui ne interop avec un C de la bibliothèque. Cette bibliothèque C renvoie une structure avec un char[] tableau à l'intérieur, comme ceci:

struct record
{
    char name[8];
};

La définition est correctement importé en Swift. Cependant, le champ est interprété comme un tuple de 8 Int8 éléments (tapé (Int8, Int8, Int8, Int8, Int8, Int8, Int8, Int8)), dont je n'ai aucune idée de comment le transformer en un String avec Swift.

Il n'y a pas de String initialiseur qui accepte un Int8 tuple, et il ne semble pas possible d'obtenir un pointeur vers le premier élément du tuple (depuis que les types peuvent être hétérogènes, ce n'est pas vraiment surprenant).

Droit maintenant, ma meilleure idée est de créer une petite fonction C qui accepte un pointeur vers la structure elle-même et de retour name comme un char* pointeur au lieu d'un tableau, d'aller et avec qui.

Est là, cependant, sont un pur moyen rapide de le faire?

Êtes-vous sûr de l'interopérabilité en fait un C question? Ou que votre solution de contournement ne sorte? D'autant plus que vous voulez un pur-swift solution...
si j'étais à la recherche de comment convertir un char du C tableau à une Swift chaîne, j'aurais l'air pour les balises "c" et "swift" pour sûr.
Il n'y a rien C sur que de tableau d'octets, mais vous avoir une description valide en C, C++, objective-C, objective-C++ et ainsi de suite. Ne pas en faire une C question.
Je ne connais pas un seul qui se réfère à ces "C++ tableaux" ou "Objective-C des tableaux" ou "Objective-C++ tableaux", et je ne connais pas d'autre définition de "C tableau". Lorsque j'ai cherché une solution, j'ai utilisé "C tableau" dans mes termes de recherche, et si je suis une exception, je crois que la prochaine personne avec le même problème que va faire la même chose. Je pense que les balises sont les plus importants pour les demandes de recherche, et que leur catégorisation but vient qu'en second.
Si quoi que ce soit souvent décrit à l'aide de C comme synonyme de bas niveau et natif a été marqué C, qui serait d'anéantir le C de la balise avec à peu près tout avoir à faire avec les indigènes de l'interopérabilité. Très mauvaise idée.

OriginalL'auteur zneak | 2014-12-13