Objective Sharpie Verify Attributes

Sie werden häufig feststellen, dass von Objective Sharpie erzeugte Bindungen mit dem [Verify] -Attribut kommentiert werden. Diese Attribute geben an, dass Sie überprüfen sollten, ob Objective Sharpie die richtige Aufgabe ausgeführt hat, indem Sie die Bindung mit der ursprünglichen C/ -Deklaration vergleichen (die in einem Kommentar oberhalb der gebundenen Deklaration angegeben wird).

Die Überprüfung wird für alle gebundenen Deklarationen empfohlen, ist jedoch höchstwahrscheinlich für Deklarationen erforderlich , die mit dem -Attribut versehen sind. Dies liegt daran, dass in vielen Situationen nicht genügend Metadaten im ursprünglichen nativen Quellcode vorhanden sind, um abzuleiten, wie eine Bindung am besten erzeugt werden kann. Möglicherweise müssen Sie auf die Dokumentation oder Codekommentare in den Headerdateien verweisen, um die beste Bindungsentscheidung zu treffen.

Nachdem Sie sich vergewissert haben, dass die Bindung korrekt ist oder korrigiert wurde, entfernen Sie das Attribut aus der Bindung.

Wichtig

[Verify] -Attribute verursachen absichtlich C#-Kompilierungsfehler, sodass Sie gezwungen werden, die Bindung zu überprüfen. Sie sollten das [Verify] Attribut entfernen, wenn Sie den Code überprüft (und möglicherweise korrigiert) haben.

Referenz zu Hinweisen überprüfen

Auf das für das Attribut angegebene Hinweisargument kann mit der folgenden Dokumentation querverweist werden. Die Dokumentation für alle erzeugten [Verify] Attribute wird auch in der Konsole bereitgestellt, nachdem die Bindung abgeschlossen wurde.

[Verify] Hinweis BESCHREIBUNG
InferredFromPreceedingTypedef Der Name dieser Deklaration wurde durch allgemeine Konventionen aus dem unmittelbar vorangehenden typedef im ursprünglichen nativen Quellcode abgeleitet. Vergewissern Sie sich, dass der abgeleitete Name richtig ist, da diese Konvention mehrdeutig ist.
ConstantsInterfaceAssociation Es gibt keine deklarationssichere Methode, um zu bestimmen, Objective-C welcher Schnittstelle eine externe Variablendeklaration zugeordnet werden kann. Instanzen dieser Werden als [Field] Eigenschaften in einer partiellen Schnittstelle an eine nahezu konkrete Schnittstelle gebunden, um eine intuitivere API zu erzeugen, wodurch die "Constants"-Schnittstelle möglicherweise vollständig beseitigt wird.
MethodToProperty Eine Objective-C Methode wurde aufgrund der Konvention als C#-Eigenschaft gebunden, z. B. durch das Verwenden von Parametern und das Zurückgeben eines Werts (nicht void return). Methoden wie diese sollten häufig als Eigenschaften gebunden werden, um eine ansprechendere API zu erstellen, aber manchmal können falsch positive Ergebnisse auftreten, und die Bindung sollte eigentlich eine Methode sein.
StronglyTypedNSArray Ein nativer NSArray* wurde als NSObject[]gebunden. Es kann möglich sein, das Array in der Bindung basierend auf den Erwartungen, die über die API-Dokumentation festgelegt wurden (z. B. Kommentare in der Headerdatei), oder durch Untersuchen des Arrayinhalts durch Tests stärker einzugeben. Beispielsweise kann ein NSArray*-Konto, das nur die NSNumber*-Instanz enthält, als NSNumber[] anstelle von NSObject[]gebunden werden.

Sie können auch schnell Dokumentation zu einem Hinweis mit dem sharpie verify-docs Tool erhalten, z. B.:

sharpie verify-docs InferredFromPreceedingTypedef