Partager via


Attributs de vérification Sharpie objectif

Vous constaterez souvent que les liaisons produites par Objective Sharpie sont annotées avec l’attribut [Verify] . Ces attributs indiquent que vous devez vérifier que Objective Sharpie a fait la bonne chose en comparant la liaison avec la déclaration C/Objective-C d’origine (qui sera fournie dans un commentaire au-dessus de la déclaration liée).

La vérification est recommandée pour toutes les déclarations liées, mais elle est probablement nécessaire pour les déclarations annotées avec l’attribut [Verify] . En effet, dans de nombreuses situations, il n’y a pas suffisamment de métadonnées dans le code source natif d’origine pour déduire la meilleure façon de produire une liaison. Vous devrez peut-être référencer la documentation ou les commentaires de code dans les fichiers d’en-tête pour prendre la meilleure décision de liaison.

Une fois que vous avez vérifié que la liaison est correcte ou que vous l’avez corrigée, supprimez l’attribut [Verify] de la liaison.

Important

[Verify] les attributs provoquent intentionnellement des erreurs de compilation C#, ce qui vous oblige à vérifier la liaison. Vous devez supprimer l’attribut [Verify] lorsque vous avez examiné (et éventuellement corrigé) le code.

Vérifier la référence des indicateurs

L’argument d’indicateur fourni à l’attribut peut être référencé avec la documentation ci-dessous. La documentation relative aux attributs produits [Verify] sera fournie sur la console une fois la liaison terminée.

[Verify] Indice Description
InferredFromPreceedingTypedef Le nom de cette déclaration a été déduit par convention commune de l’immédiatement précédent typedef dans le code source natif d’origine. Vérifiez que le nom déduit est correct, car cette convention est ambiguë.
ConstantesInterfaceAssociation Il n’existe aucun moyen infaillible de déterminer à quelle Objective-C interface une déclaration de variable extern peut être associée. Les instances de ceux-ci sont liées en tant que [Field] propriétés dans une interface partielle dans une interface concrète proche pour produire une API plus intuitive, éliminant peut-être l’interface « Constantes » complètement.
MethodToProperty Une Objective-C méthode a été liée en tant que propriété C# en raison d’une convention telle que l’absence de paramètres et le retour d’une valeur (retour non vide). Souvent, les méthodes comme celles-ci doivent être liées en tant que propriétés pour faire apparaître une API plus agréable, mais parfois des faux positifs peuvent se produire et la liaison doit en fait être une méthode.
FortementTypedNSArray Un natif NSArray* était lié en tant que NSObject[]. Il peut être possible de taper plus fortement le tableau dans la liaison en fonction des attentes définies par le biais de la documentation de l’API (par exemple, les commentaires dans le fichier d’en-tête) ou en examinant le contenu du tableau par le biais de tests. Par exemple, un NSArray* contenant uniquement des instances NSNumber* peut être lié comme NSNumber[] au lieu de NSObject[].

Vous pouvez également recevoir rapidement la documentation d’un indicateur à l’aide de l’outil sharpie verify-docs , par exemple :

sharpie verify-docs InferredFromPreceedingTypedef