Compartir vía


Atributos Objective Sharpie Verify

A menudo encontrará que los enlaces generados por Objective Sharpie se anotarán con el atributo [Verify]. Estos atributos indican que debe comprobar que Objective Sharpie hizo lo correcto comparando el enlace con la declaración C/Objective-C original (que se proporcionará en un comentario encima de la declaración enlazada).

Se recomienda la comprobación para todas las declaraciones enlazadas, pero es más probable que sea necesaria para las declaraciones anotadas con el atributo [Verify]. Esto se debe a que, en muchas situaciones, no hay suficientes metadatos en el código fuente nativo original para deducir cómo generar mejor un enlace. Es posible que tenga que hacer referencia a documentación o comentarios de código dentro de los archivos de encabezado para tomar la mejor decisión de enlace.

Una vez que haya comprobado que el enlace es correcto o que lo ha corregido para que sea correcto, quite el atributo [Verify] del enlace.

Importante

Los atributos [Verify] provocan intencionadamente errores de compilación de C# para que se le obligue a comprobar el enlace. Debe quitar el atributo [Verify] cuando haya revisado (y posiblemente corregido) el código.

Referencia de comprobación de sugerencias

El argumento de sugerencia suministrado al atributo puede cruzarse con la documentación que figura a continuación. La documentación de los atributos [Verify] generados se proporcionará también en la consola una vez completado el enlace.

Sugerencia [Verify] Descripción
InferredFromPreceedingTypedef El nombre de esta declaración fue inferido por una convención común del inmediatamente anterior typedef en el código fuente nativo original. Compruebe que el nombre inferido es correcto, ya que esta convención es ambigua.
ConstantsInterfaceAssociation No hay ninguna manera de determinar con qué interfaz Objective-C se puede asociar una declaración de variable externa. Las instancias de estas se enlazan como propiedades [Field] en una interfaz parcial en una interfaz concreta cercana para producir una API más intuitiva, posiblemente eliminando por completo la interfaz "Constantes".
MethodToProperty Un método Objective-C se ha enlazado como una propiedad de C# debido a la convención, como no tomar ningún parámetro y devolver un valor (devolución no nula). A menudo, los métodos como estos deben enlazarse como propiedades para exponer una API más agradable, pero a veces se pueden producir falsos positivos y el enlace debe ser realmente un método.
StronglyTypedNSArray Un nativo NSArray* estaba enlazado como NSObject[]. Puede ser posible escribir más fuertemente la matriz en el enlace en función de las expectativas establecidas a través de la documentación de API (por ejemplo, comentarios en el archivo de encabezado) o examinando el contenido de la matriz mediante pruebas. Por ejemplo, un NSArray* que contiene solo instancias de NSNumber* se enlaza como NSNumber[] en lugar de NSObject[].

También puede recibir rápidamente documentación para obtener una sugerencia mediante la herramienta sharpie verify-docs, por ejemplo:

sharpie verify-docs InferredFromPreceedingTypedef