Sdílet prostřednictvím


Objective Sharpie Verify – atributy

Často zjistíte, že vazby vytvořené Objective Sharpie budou anotovány atributem [Verify] . Tyto atributy naznačují, že byste měli ověřit , že Objective Sharpie udělal správnou věc porovnáním vazby s původní C/Objective-C deklaraci (která bude poskytnuta v komentáři nad vázanou deklaraci).

U všech vázaných deklarací se doporučuje ověření, ale s největší pravděpodobností se vyžaduje pro deklarace anotované atributem[Verify]. Důvodem je to, že v mnoha situacích není v původním nativním zdrojovém kódu dostatek metadat, aby bylo možné odvodit, jak nejlépe vytvořit vazbu. Možná budete muset odkazovat na dokumentaci nebo komentáře ke kódu v souborech hlaviček, aby bylo nejlepší závazné rozhodnutí.

Jakmile ověříte, že je vazba správná nebo byla opravena, aby byla správná, odeberte[Verify] atribut z vazby.

Důležité

[Verify] atributy záměrně způsobují chyby kompilace jazyka C#, abyste byli nuceni ověřit vazbu. Atribut byste měli odebrat [Verify] , když jste kód zkontrolovali (a případně opravili).

Referenční informace k ověření nápovědy

Argument nápovědy zadaný atributem lze křížově odkazovat s následující dokumentací. Dokumentace pro všechny vytvořené [Verify] atributy bude k dispozici v konzole i po dokončení vazby.

[Verify] Nápovědy Popis
InferredFromPreceedingTypedef Název této deklarace byl odvozen společnou konvencí z bezprostředně předcházejícího typedef původního nativního zdrojového kódu. Ověřte, že odvozený název je správný, protože tato konvence je nejednoznačná.
ConstantsInterfaceAssociation Neexistuje žádný způsob, jak zjistit, s jakým Objective-C rozhraním může být deklarace extern proměnné přidružena. Instance jsou vázány jako [Field] vlastnosti v částečném rozhraní do blízkého konkrétního rozhraní, aby se vytvořilo intuitivnější rozhraní API, což může eliminovat "konstanty" rozhraní úplně.
MethodToProperty Metoda Objective-C byla vázaná jako vlastnost jazyka C# z důvodu konvence, jako je například bez parametrů a vrácení hodnoty (nevoid return). Podobné metody by se často měly vázat jako vlastnosti k vytvoření hezčího rozhraní API, ale někdy může dojít k falešně pozitivním výsledkům a vazba by měla být ve skutečnosti metodou.
StronglyTypedNSArray Nativní NSArray* byl vázán jako NSObject[]. V závislosti na očekáváních nastavených prostřednictvím dokumentace k rozhraní API (např. komentářů v souboru hlaviček) nebo zkoumáním obsahu pole prostřednictvím testování může být možné pole v vazbě silněji zadat. Například NSArray* obsahující pouze NSNumber* instancescan být vázán jako NSNumber[] místo NSObject[].

Pomocí nástroje můžete také rychle získat dokumentaci k nápovědě sharpie verify-docs , například:

sharpie verify-docs InferredFromPreceedingTypedef