當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Swift UnsafeMutableRawPointer bindMemory(to:capacity:)用法及代碼示例

實例方法

bindMemory(to:capacity:)

將內存綁定到指定類型並返回指向綁定內存的類型化指針。

聲明

@discardableResult func bindMemory<T>(
    to type: T.Type,
    capacity count: Int
) -> UnsafeMutablePointer<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大神的英文原創作品 UnsafeMutableRawPointer bindMemory(to:capacity:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。