![](/img/trans.png)
[英]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.