實例方法
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:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。