我有一个带有以下结构
的C库typedef struct Client_
{
/*! Display Name for Guest only */
char displayName[USERID_SIZE];
/*! Conference PIN if needed */
char pin[PIN_SIZE];
} Client;
从swift开始,我必须为成员分配字符串。
var client = Client();
let guestVName = "Swift user";
let guestVRoomPin = "";
怎么做?请帮忙。
答案 0 :(得分:1)
你可能需要写这样的东西:
strlcpy(&client.displayName.0, guestVName, Int(USERID_SIZE))
strlcpy(&client.pin.0, guestVRoomPin, Int(PIN_SIZE))
在C语言中,数组通过指针传递给第一个元素,而在Swift中,固定大小的C数组作为元组导入。因此,您需要模拟C编译器的功能。在上面的代码中,您可以将指针传递给元组的第一个元素。
(请记住,strlcpy
不是标准C库函数。它会切断字符串的超出部分,这可能会生成无效的字节序列为UTF-8。)