繁体   English   中英

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

[英]How to pass a Swift string to a c function?

我在将字符串从 swift 传递到用 c 编写的函数时遇到了严重的问题。

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

var address = "192.168.1.2"
var port = 8888

initSocket(address, port)

c 函数如下所示:

void initSocket(char *address, int port);

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

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

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

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

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

var address: CString = "192.168.1.2";

在 C 中,像这样声明你的参数

void setLastName(const char* lastName){

}

然后在swift中,你可以直接传入一个普通的swift字符串

setLastName("Montego");

关键是在 C 中的 char 之后立即定义带有星号的变量,例如: const char*

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM