当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift ManagedBufferPointer用法及代码示例


结构

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+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 ManagedBufferPointer。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。