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


Swift UnsafeMutableRawPointer storeBytes(of:toByteOffset:as:)用法及代碼示例

實例方法

storeBytes(of:toByteOffset:as:)

將給定值的字節存儲到指定偏移量的原始內存中。

聲明

func storeBytes<T>(
    of value: T,
    toByteOffset offset: Int = 0,
    as type: T.Type
)

參數

value

要存儲為原始字節的值。

offset

此指針的偏移量,以字節為單位。 offset 必須為非負數。默認為零。

type

value 的類型。

詳述

要存儲的類型T 必須是普通類型。此指針處的內存加上 offset 必須正確對齊才能訪問 T 。內存還必須未初始化,初始化為 T ,或初始化為與 T 布局兼容的另一種普通類型。

調用 storeBytes(of:toByteOffset:as:) 後,內存被初始化為 value 的原始字節。如果內存綁定到與 T 布局兼容的類型 U ,則它包含類型為 U 的值。調用storeBytes(of:toByteOffset:as:) 不會更改內存的綁定類型。

如果您需要將非平凡值的副本存儲到內存中,或將值存儲到包含非平凡值的內存中,則不能使用storeBytes(of:toByteOffset:as:) 方法。相反,您必須知道先前在內存中的值的類型並初始化或分配內存。例如,要替換存儲在原始指針 p 中的值,其中 U 是當前類型,T 是新類型,請使用類型化指針訪問並取消初始化當前值,然後再使用新的值。


let typedPointer = p.bindMemory(to: U.self, capacity: 1)
typedPointer.deinitialize(count: 1)
p.initializeMemory(as: T.self, repeating: newValue, count: 1)

可用版本

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

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 UnsafeMutableRawPointer storeBytes(of:toByteOffset:as:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。