这对你来说可能是微不足道的,但我是 Swift 的新手,我找不到答案。我使用 C 代码从 TCP/IP 转换数据,一切正常。但是当我尝试将数据发送回 Swift 时,我收到错误消息:“UnsafeMutablePointer”类型的值没有成员“x”(在编译时)。
简而言之,我的 C 代码生成了一个结构,我希望我的 swift 代码可以读取该结构并使用该结构来访问字段。注意:我不想复制数据(这里的示例很简单,但我处理的是 MB(GB)。
override func viewDidLoad()
{
struct MyStruct1
{
var x : UInt32
var y : UInt32
}
var buffer : UnsafeMutablePointer<UInt8>?
//...
buffer = UnsafeMutablePointer<UInt8>.allocate( capacity: Int(1024) )
if (buffer != nil)
{
defer { buffer!.deallocate() }
// CCode_That_Initializes_Buffer( buffer ) with An array of MyStruct
var myStructP : UnsafeMutablePointer<MyStruct1>
myStructP = UnsafeMutableRawPointer(buffer!).assumingMemoryBound(to: MyStruct1.self)
// Value of type 'UnsafeMutablePointer<MyStruct1>' has no member 'x'
print( myStructP.x ) // <= This does not compile
}
}