实例方法
bind
bindMemory(to:capacity:)
将内存绑定到指定类型并返回指向绑定内存的类型化指针。
声明
@discardableResult func bindMemory<T>(
to type: T.Type,
capacity count: Int
) -> UnsafeMutablePointer<T>
返回值
指向新绑定内存的类型化指针。此区域中的内存绑定到 T
,但没有以任何其他方式修改。该区域的字节数为 count * MemoryLayout<T>.stride
。
参数
type
将内存绑定到的类型
T
。count
绑定到类型
T
的内存量,计为T
的实例。
详述
使用 bindMemory(to:capacity:)
方法将此指针引用的内存绑定到类型 T
。内存必须未初始化或初始化为与 T
布局兼容的类型。如果内存未初始化,绑定到 T
后仍然未初始化。
在此示例中,为指针 bytesPointer
分配了 100 字节的原始内存,然后将前四个字节绑定到 Int8
类型。
let count = 4
let bytesPointer = UnsafeMutableRawPointer.allocate(
byteCount: 100,
alignment: MemoryLayout<Int8>.alignment)
let int8Pointer = bytesPointer.bindMemory(to: Int8.self, capacity: count)
调用 bindMemory(to:capacity:)
后,bytesPointer
引用的内存的前四个字节绑定到 Int8
类型,尽管它们仍未初始化。分配区域的其余部分是未绑定的原始内存。最终必须释放所有 100 字节的内存。
可用版本
iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+
相关用法
- Swift UnsafeMutableRawPointer ..<(_:_:)用法及代码示例
- Swift UnsafeMutableRawPointer ...(_:_:)用法及代码示例
- Swift UnsafeMutableRawPointer initializeMemory(as:repeating:count:)用法及代码示例
- Swift UnsafeMutableRawPointer advanced(by:)用法及代码示例
- Swift UnsafeMutableRawPointer ..<(_:)用法及代码示例
- Swift UnsafeMutableRawPointer storeBytes(of:toByteOffset:as:)用法及代码示例
- Swift UnsafeMutableRawPointer initializeMemory(as:from:count:)用法及代码示例
- 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 bindMemory(to:capacity:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。