swift – 如何从UnsafeMutableRawPointer中获取字节?
发布时间:2020-12-14 05:42:19 所属栏目:百科 来源:网络整理
导读:如何通过C API(Core Audio等)将UnsafeMutableRawPointer(Swift 3中的新)访问字节(或Int16,浮动等)移出Swift函数. 负载 T从内存读取原始字节并构造一个类型T的值: let ptr = ... // Unsafe[Mutable]RawPointerlet i16 = ptr.load(as: UInt16.self) 可选地以
如何通过C API(Core Audio等)将UnsafeMutableRawPointer(Swift 3中的新)访问字节(或Int16,浮动等)移出Swift函数.
负载< T>从内存读取原始字节并构造一个类型T的值:
let ptr = ... // Unsafe[Mutable]RawPointer let i16 = ptr.load(as: UInt16.self) 可选地以字节偏移: let i16 = ptr.load(fromByteOffset: 4,as: UInt16.self) 还假设MemoryBound()将Unsafe [Mutable] RawPointer转换为Unsafe [Mutable]指针T,假设指向存储器包含类型T的值: let i16 = ptr.assumingMemoryBound(to: UInt16.self).pointee 对于一组值,您可以创建一个“缓冲区指针”: let i16bufptr = UnsafeBufferPointer(start: ptr.assumingMemoryBound(to: UInt16.self),count: count) 缓冲区指针可能已经足够用于您的目的了 let i16array = Array(i16bufptr) 正如@Hamish所说,更多的信息和细节可以在那里找到 > SE-0107 UnsafeRawPointer API (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |