Udostępnij za pośrednictwem


Objective Sharpie Verify Attributes

Często okaże się, że powiązania utworzone przez funkcję Objective Sharpie będą oznaczone adnotacjami z atrybutem [Verify] . Te atrybuty wskazują, że należy sprawdzić , czy objective Sharpie zrobił prawidłową rzecz, porównując powiązanie z oryginalną deklaracją C/Objective-C (która zostanie podana w komentarzu powyżej deklaracji powiązanej).

Weryfikacja jest zalecana dla wszystkich deklaracji powiązanych, ale najprawdopodobniej jest wymagana w przypadku deklaracji z adnotacjami z atrybutem [Verify] . Wynika to z faktu, że w wielu sytuacjach nie ma wystarczającej ilości metadanych w oryginalnym natywnym kodzie źródłowym, aby wywnioskować, jak najlepiej utworzyć powiązanie. W celu podjęcia najlepszej decyzji dotyczącej powiązania może być konieczne odwołanie się do dokumentacji lub komentarzy kodu w plikach nagłówków.

Po zweryfikowaniu, że powiązanie jest poprawne lub naprawiono, aby było poprawne, usuń[Verify] atrybut z powiązania.

Ważne

[Verify] atrybuty celowo powodują błędy kompilacji języka C#, aby można było zweryfikować powiązanie. Należy usunąć [Verify] atrybut podczas przeglądania (i ewentualnie poprawionego) kodu.

Weryfikowanie odwołań wskazówek

Argument wskazówki dostarczony do atrybutu może być przywoływane krzyżowo z poniższą dokumentacją. Dokumentacja wszystkich utworzonych [Verify] atrybutów zostanie udostępniona w konsoli programu , a także po zakończeniu powiązania.

[Verify] Wskazówka opis
InferredFromPreceedingTypedef Nazwa tej deklaracji została wywnioskowana przez wspólną konwencję bezpośrednio poprzednią typedef w oryginalnym natywnym kodzie źródłowym. Sprawdź, czy wywnioskowana nazwa jest poprawna, ponieważ ta konwencja jest niejednoznaczna.
ConstantsInterfaceAssociation Nie ma możliwości określenia, z którym Objective-C interfejsem może być skojarzona deklaracja zmiennej extern. Wystąpienia tych elementów są powiązane jako [Field] właściwości w interfejsie częściowym w interfejsie zbliżonym do konkretnego w celu utworzenia bardziej intuicyjnego interfejsu API, co może całkowicie wyeliminować interfejs "Stałe".
MethodToProperty Metoda Objective-C została powiązana jako właściwość języka C# ze względu na konwencję, taką jak brak parametrów i zwracanie wartości (zwracanie wartości niepustej). Często metody podobne do tych powinny być powiązane jako właściwości, aby uwidocznić interfejs API nicer, ale czasami mogą wystąpić fałszywie dodatnie, a powiązanie powinno być rzeczywiście metodą.
SilnietypoweNSArray Natywny NSArray* był powiązany jako NSObject[]. Może być możliwe bardziej silne wpisywanie tablicy w powiązaniu na podstawie oczekiwań ustawionych za pomocą dokumentacji interfejsu API (np. komentarzy w pliku nagłówka) lub przez sprawdzenie zawartości tablicy przez testowanie. Na przykład NSArray* zawierający tylko NSNumber* wystąpieniascan być powiązane jako NSNumber[] zamiast NSObject[].

Możesz również szybko otrzymywać dokumentację dotyczącą wskazówek przy użyciu sharpie verify-docs narzędzia, na przykład:

sharpie verify-docs InferredFromPreceedingTypedef