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