【发布时间】:2019-02-09 19:39:43
【问题描述】:
在尝试与 C 库 (Vulkan) 交互时,在尝试将 Swift(4.2) 本机字符串分配给 C 字符串时遇到以下错误
error: cannot assign value of type 'String' to type 'UnsafePointer<Int8>?'
我正在做一个简单的任务
var appInfo = VkApplicationInfo()
appInfo.pApplicationName = "Hello world"
难道 Swift 不应该通过其自动桥接来处理这些问题吗?
【问题讨论】:
-
自动桥接在这里无济于事,因为它不能解决内存管理问题。您将 Swift 字符串传递给不符合 Swift ARC 规则的 C 代码。我认为在这种情况下您需要使用 Unmanaged
,但我不确定。 -
@Alexander:
Unmanaged<T>在这里无济于事,它只用于 classesT。
标签: c swift vulkan bridging-header