Swift中的隐式CString转换

时间:2019-04-10 11:26:01

标签: swift

快速String公开了方法withCString,该方法在闭包内部提供了CString指针。另一方面,当我想将快速String传递给从C导入的方法时,例如

func foo(_ ptr: UnsafePointer<Int8>)

我可以将其直接作为文字

传递
foo("bar")

或任何String类型的变量

var s = "bar"
foo(s)

在这种情况下,编译器是否正确转换为CString?如果是,则在哪里记录下来,这样我就可以确定这种行为吗?

如果编译器可以自动执行此操作,为什么还要有一个显式withCString?为了确保对象寿命?

0 个答案:

没有答案