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


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:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。