Swift Language(Inseguro) punteros de búfer


Introducción

“Se utiliza un puntero de búfer para el acceso de bajo nivel a una región de memoria. Por ejemplo, puede usar un puntero de búfer para el procesamiento y la comunicación eficientes de datos entre aplicaciones y servicios ".

Extracto de: Apple Inc. "Uso de Swift con Cocoa y Objective-C (Edición Swift 3.1)". IBooks. https://itun.es/us/utTW7.l

Usted es responsable de manejar el ciclo de vida de cualquier memoria con la que trabaje a través de punteros de búfer, para evitar fugas o comportamientos indefinidos.

Observaciones

Conceptos estrechamente alineados requeridos para completar la comprensión de los BufferPointers (inseguros).

  • MemoryLayout ( el diseño de memoria de un tipo, que describe su tamaño, zancada y alineación ).
  • No administrado ( un tipo para propagar una referencia de objeto no administrado ).
  • UnsafeBufferPointer ( Una interfaz de colección no propietaria a un búfer de elementos almacenados de forma contigua en la memoria ).
  • UnsafeBufferPointerIterator ( un iterador para los elementos en el búfer al que hace referencia una instancia de UnsafeBufferPointer o UnsafeMutableBufferPointer ).
  • UnsafeMutableBufferPointer ( Una interfaz de colección no propietaria a un búfer de elementos mutables almacenados de forma contigua en la memoria ) .
  • UnsafeMutablePointer ( Un puntero para acceder y manipular datos de un tipo específico ) .
  • UnsafeMutableRawBufferPointer ( Una interfaz de colección no propietaria mutable a los bytes en una región de memoria ) .
  • UnsafeMutableRawBufferPointer.Iterator ( un iterador sobre los bytes vistos por un puntero de búfer en bruto ) .
  • UnsafeMutableRawPointer ( Un puntero en bruto para acceder y manipular datos sin tipo ) .
  • UnsafePointer ( Un puntero para acceder a datos de un tipo específico ) .
  • UnsafeRawBufferPointer ( Una interfaz de colección no propia para los bytes en una región de memoria ) .
  • UnsafeRawBufferPointer.Iterator ( un iterador sobre los bytes vistos por un puntero de búfer en bruto ) .
  • UnsafeRawPointer ( Un puntero en bruto para acceder a datos sin tipo ) .

(Fuente, Swiftdoc.org )

(Inseguro) punteros de búfer Ejemplos relacionados