gpt4 book ai didi

swift - 如何访问 Swift 中 UnsafePointer 引用的结构的成员字段的 UnsafePointer?

转载 作者:搜寻专家 更新时间:2023-11-01 07:14:57 24 4
gpt4 key购买 nike

给定

public struct MIDIPacketList {
public var numPackets: UInt32
public var packet: (MIDIPacket)
}

如果我有一个 UnsafeMutablePointer,我想访问数据包的一个 UnsafeMutablePointer。仅仅获得原始数据包成员的副本很容易,但不正确:我需要指针本身。 在 C 中,我想实现的很简单

MIDIPacket *packet = &packetList->packet;

我如何在 Swift 中做同样的事情? 请注意,虽然我认为前进 4 个字节(UInt32 的大小)很可能作为 hack 工作,但由于结构对齐问题,这是一个不正确的答案。

最佳答案

这应该有效:

let packetList: UnsafeMutablePointer<MIDIPacketList> = ...

withUnsafeMutablePointer(to: &packetList.pointee.packet) {
packet in // UnsafeMutablePointer<(MIDIPacket)>
// ...
}

在闭包内部,packet 是指向 MIDIPacket 的指针。

关于swift - 如何访问 Swift 中 UnsafePointer 引用的结构的成员字段的 UnsafePointer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42667639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com