當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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