[英]How do I update a statement of Data of UnsafePointer for Swift 3?
[英]How do I access UnsafePointer of member field of a struct referenced by an UnsafePointer in Swift?
特定
public struct MIDIPacketList {
public var numPackets: UInt32
public var packet: (MIDIPacket)
}
鉴于我有一个UnsafeMutablePointer,我想访问一个数据包的UnsafeMutablePointer。 仅获取原始数据包成员的副本很容易,但不正确:我需要指针本身。 在C语言中,我想要实现的过程很简单
MIDIPacket *packet = &packetList->packet;
如何在Swift中做同样的事情? 请注意,尽管我认为前进4个字节(UInt32的大小)确实很可能会引起黑客攻击,但是由于结构对齐问题,这是不正确的答案。
这应该工作:
let packetList: UnsafeMutablePointer<MIDIPacketList> = ...
withUnsafeMutablePointer(to: &packetList.pointee.packet) {
packet in // UnsafeMutablePointer<(MIDIPacket)>
// ...
}
在闭packet
内部, packet
是指向MIDIPacket
的指针。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.