实例方法
initialize
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+
相关用法
- Swift UnsafeMutableRawPointer initializeMemory(as:from:count:)用法及代码示例
- Swift UnsafeMutableRawPointer ..<(_:_:)用法及代码示例
- Swift UnsafeMutableRawPointer ...(_:_:)用法及代码示例
- Swift UnsafeMutableRawPointer advanced(by:)用法及代码示例
- Swift UnsafeMutableRawPointer ..<(_:)用法及代码示例
- Swift UnsafeMutableRawPointer bindMemory(to:capacity:)用法及代码示例
- Swift UnsafeMutableRawPointer storeBytes(of:toByteOffset:as:)用法及代码示例
- Swift UnsafeMutableRawPointer ...(_:)用法及代码示例
- Swift UnsafeMutableRawPointer withMemoryRebound(to:capacity:_:)用法及代码示例
- Swift UnsafeMutableRawPointer用法及代码示例
- Swift UnsafeMutableRawBufferPointer shuffle()用法及代码示例
- Swift UnsafeMutableRawBufferPointer compactMap(_:)用法及代码示例
- Swift UnsafeMutableRawBufferPointer contains(where:)用法及代码示例
- Swift UnsafeMutableRawBufferPointer allSatisfy(_:)用法及代码示例
- Swift UnsafeMutableRawBufferPointer map(_:)用法及代码示例
- Swift UnsafeMutableRawBufferPointer starts(with:)用法及代码示例
- Swift UnsafeMutableRawBufferPointer isEmpty用法及代码示例
- Swift UnsafeMutableRawBufferPointer sorted()用法及代码示例
- Swift UnsafeMutableRawBufferPointer indices用法及代码示例
- Swift UnsafeMutableRawBufferPointer randomElement(using:)用法及代码示例
- Swift UnsafeMutableRawBufferPointer reduce(_:_:)用法及代码示例
- Swift UnsafeMutableRawBufferPointer split(maxSplits:omittingEmptySubsequences:whereSeparator:)用法及代码示例
- Swift UnsafeMutableRawBufferPointer sort(by:)用法及代码示例
- Swift UnsafeMutableRawBufferPointer lexicographicallyPrecedes(_:)用法及代码示例
- Swift UnsafeMutableRawBufferPointer forEach(_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 UnsafeMutableRawPointer initializeMemory(as:repeating:count:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。