当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift UnsafeRawPointer bindMemory(to:capacity:)用法及代码示例


实例方法

bindMemory(to:capacity:)

将内存绑定到指定类型并返回指向绑定内存的类型化指针。

声明

@discardableResult func bindMemory<T>(
    to type: T.Type,
    capacity count: Int
) -> UnsafePointer<T>

返回值

指向新绑定内存的类型化指针。此区域中的内存绑定到 T ,但没有以任何其他方式修改。该区域的字节数为 count * MemoryLayout<T>.stride

参数

type

将内存绑定到的类型T

count

绑定到类型 T 的内存量,计为 T 的实例。

详述

使用 bindMemory(to:capacity:) 方法将此指针引用的内存绑定到类型 T 。内存必须未初始化或初始化为与 T 布局兼容的类型。如果内存未初始化,绑定到 T 后仍然未初始化。

在此示例中,为指针 bytesPointer 分配了 100 字节的原始内存,然后将前四个字节绑定到 Int8 类型。


let count = 4
let bytesPointer = UnsafeMutableRawPointer.allocate(
        byteCount: 100,
        alignment: MemoryLayout<Int8>.alignment)
let int8Pointer = bytesPointer.bindMemory(to: Int8.self, capacity: count)

调用 bindMemory(to:capacity:) 后,bytesPointer 引用的内存的前四个字节绑定到 Int8 类型,尽管它们仍未初始化。分配区域的其余部分是未绑定的原始内存。最终必须释放所有 100 字节的内存。

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 UnsafeRawPointer bindMemory(to:capacity:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。