实例方法
bind
bindMemory(to:capacity:)
将内存绑定到指定类型并返回指向绑定内存的类型化指针。
声明
@discardableResult func bindMemory<T>(
to type: T.Type,
capacity count: Int
) -> UnsafePointer<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 UnsafeRawPointer advanced(by:)用法及代码示例
- Swift UnsafeRawPointer ...(_:_:)用法及代码示例
- Swift UnsafeRawPointer ..<(_:)用法及代码示例
- Swift UnsafeRawPointer ...(_:)用法及代码示例
- Swift UnsafeRawPointer withMemoryRebound(to:capacity:_:)用法及代码示例
- Swift UnsafeRawPointer ..<(_:_:)用法及代码示例
- Swift UnsafeRawPointer用法及代码示例
- Swift UnsafeRawBufferPointer.Iterator dropFirst(_:)用法及代码示例
- Swift UnsafeRawBufferPointer.Iterator max()用法及代码示例
- Swift UnsafeRawBufferPointer shuffled(using:)用法及代码示例
- Swift UnsafeRawBufferPointer isEmpty用法及代码示例
- Swift UnsafeRawBufferPointer enumerated()用法及代码示例
- Swift UnsafeRawBufferPointer subscript(_:)用法及代码示例
- Swift UnsafeRawBufferPointer starts(with:)用法及代码示例
- Swift UnsafeRawBufferPointer.Iterator filter(_:)用法及代码示例
- Swift UnsafeRawBufferPointer firstIndex(where:)用法及代码示例
- Swift UnsafeRawBufferPointer.Iterator drop(while:)用法及代码示例
- Swift UnsafeRawBufferPointer.Iterator min()用法及代码示例
- Swift UnsafeRawBufferPointer.Iterator contains(where:)用法及代码示例
- Swift UnsafeRawBufferPointer contains(where:)用法及代码示例
- Swift UnsafeRawBufferPointer.Iterator contains(_:)用法及代码示例
- Swift UnsafeRawBufferPointer.Iterator reduce(into:_:)用法及代码示例
- Swift UnsafeRawBufferPointer first(where:)用法及代码示例
- Swift UnsafeRawBufferPointer.Iterator map(_:)用法及代码示例
- Swift UnsafeRawBufferPointer allSatisfy(_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 UnsafeRawPointer bindMemory(to:capacity:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。