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