簡體   English   中英

如何在Swift中訪問UnsafePointer引用的結構的成員字段的UnsafePointer?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM