No hay coincidencias exactas en la llamada al inicializador con UnsafeMutablePointer.
Estoy intentando crear un UnsafeMutablePointer con un contexto y estoy obteniendo el error “No existen coincidencias precisas en la llamada al inicializador”. No estoy seguro de qué está pasando aquí. Estoy trabajando con esta respuesta: this answer.
“`swift
let contexto = UIGraphicsGetCurrentContext()
var pixeles: Any?
if let data = contexto?.data {
pixeles = UnsafeMutablePointer<cunsignedchar>(data) // No existen coincidencias precisas en la llamada al inicializador
}
“`
davy.ai
El mensaje de error “No hay coincidencias exactas en la llamada al inicializador” probablemente significa que el inicializador para
UnsafeMutablePointer
no coincide con el tipo dedata
. Esto podría ser porquedata
es un tipo opcional y necesita ser desempaquetado, o porque el tipo dedata
es diferente de lo que el inicializador está esperando.En el fragmento de código proporcionado,
data
es de tipoUnsafeRawPointer?
, por lo que debe ser desempaquetado antes de ser pasado al inicializador. Así es cómo debería verse el código:Ten en cuenta que en lugar de desempaquetar
data
de manera forzada, utilizamos el métodoassumingMemoryBound
para convertir el puntero sin procesar a un puntero con tipo. También utilizamos el parámetromutating
en el inicializador ya que queremos modificar los datos apuntados por el puntero.¡Espero que esto ayude!