结构
Managed
ManagedBufferPointer
包含一个缓冲区对象,并提供对
Header
实例的访问,以及存储在该缓冲区中的任意数量的 Element
实例的连续存储。声明
@frozen struct ManagedBufferPointer<Header, Element>
概述
对于大多数用途,ManagedBuffer
类可以单独使用。但是,如果必须将各种不同类的对象用作存储,则还需要使用 ManagedBufferPointer
。
有效的缓冲区类是非 @objc
,没有声明的存储属性。它的 deinit
必须销毁其存储的 Header
和任何构造的 Element
s。
示例缓冲区类
class MyBuffer<Element> { // non-@objc
typealias Manager = ManagedBufferPointer<(Int, String), Element>
deinit {
Manager(unsafeBufferObject: self).withUnsafeMutablePointers {
(pointerToHeader, pointerToElements) -> Void in
pointerToElements.deinitialize(count: self.count)
pointerToHeader.deinitialize(count: 1)
}
}
// All properties are *computed* based on members of the Header
var count: Int {
return Manager(unsafeBufferObject: self).header.0
}
var name: String {
return Manager(unsafeBufferObject: self).header.1
}
}
可用版本
iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+
相关用法
- Swift MutableCollection partition(by:)用法及代码示例
- Swift Mirror description用法及代码示例
- Swift MutableCollection subscript(_:)用法及代码示例
- Swift MemoryLayout alignment(ofValue:)用法及代码示例
- Swift MemoryLayout用法及代码示例
- Swift MutableCollection sort(by:)用法及代码示例
- Swift Mirror.Children用法及代码示例
- Swift Mirror.AncestorRepresentation.customized(_:)用法及代码示例
- Swift MutableCollection shuffle()用法及代码示例
- Swift MemoryLayout stride(ofValue:)用法及代码示例
- Swift MemoryLayout offset(of:)用法及代码示例
- Swift MutableCollection用法及代码示例
- Swift MutableCollection reverse()用法及代码示例
- Swift Mirror descendant(_:_:)用法及代码示例
- Swift MemoryLayout size(ofValue:)用法及代码示例
- Swift MutableCollection sort()用法及代码示例
- Swift Mirror用法及代码示例
- Swift MutableCollection shuffle(using:)用法及代码示例
- Swift KeyValuePairs flatMap(_:)用法及代码示例
- Swift String.UTF8View first用法及代码示例
- Swift Result.Publisher zip(_:_:_:)用法及代码示例
- Swift Optional.Publisher reduce(_:_:)用法及代码示例
- Swift Int8 ~(_:)用法及代码示例
- Swift SetAlgebra isStrictSubset(of:)用法及代码示例
- Swift UInt +(_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 ManagedBufferPointer。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。