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


Swift UnsafeMutableRawPointer initializeMemory(as:repeating:count:)用法及代码示例

实例方法

initializeMemory(as:repeating:count:)

用给定的值初始化这个指针引用的内存,将内存绑定到值的类型,并返回一个指向初始化内存的类型化指针。

声明

@discardableResult func initializeMemory<T>(
    as type: T.Type,
    repeating repeatedValue: T,
    count: Int
) -> UnsafeMutablePointer<T>

返回值

指向此原始指针引用的内存的类型化指针。

参数

type

将此内存绑定到的类型。

repeatedValue

要复制到内存中的实例。

count

要复制到内存中的value 的副本数。 count 不能为负数。

详述

此指针引用的内存必须未初始化或初始化为普通类型,并且必须正确对齐才能访问 T

下面的示例分配足够的原始内存来容纳 Int8 的四个实例,然后使用 initializeMemory(as:repeating:count:) 方法初始化分配的内存。


let count = 4
let bytesPointer = UnsafeMutableRawPointer.allocate(
        byteCount: count * MemoryLayout<Int8>.stride,
        alignment: MemoryLayout<Int8>.alignment)
let int8Pointer = bytesPointer.initializeMemory(
        as: Int8.self, repeating: 0, count: count)


// After using 'int8Pointer':
int8Pointer.deallocate()

在原始指针 p 上调用此方法后,从 self 开始并继续到 p + count * MemoryLayout<T>.stride 的区域将绑定到类型 T 并初始化。如果T 是非平凡类型,您最终必须取消初始化或从该区域中的值移动以避免泄漏。

可用版本

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

相关用法


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