如何将Swift字符串传递给c函数?

时间:2014-08-19 08:35:13

标签: c xcode swift input-parameters

我在从swift传递字符串到使用c编写的函数时遇到了严重的麻烦。

我正在尝试在我的快速代码中执行此操作

var address = "192.168.1.2"
var port = 8888

initSocket(address, port)

c函数如下所示:

void initSocket(char *address, int port);

我收到错误: 无法将'Void'类型的表达式转换为'CMutablePointer'

类型

我似乎无法找到有效的解决方案。

2 个答案:

答案 0 :(得分:4)

Swift CStrings与C常量字符串无缝协作,因此请使用

void initSocket(const char *address, int port);

而不是char*参数,并将您的address变量声明为CString:

var address: CString = "192.168.1.2";

答案 1 :(得分:1)

在C语言中,这样声明您的参数

void setLastName(const char* lastName){

}

然后迅速地输入常规的迅速字符串

setLastName("Montego");

关键是要在C中的字符后立即用星号定义变量,例如:const char*

来源:https://developer.apple.com/swift/blog/?id=6