共用方式為


Objective Sharpie Verify 屬性

您通常會發現 Objective Sharpie 所產生的系結會加上 屬性的 [Verify] 批注。 這些屬性表示您應該藉由比較系結與原始 C/Objective-C 宣告來驗證 Objective Sharpie 執行正確的動作(將在系結宣告上方的批注中提供)。

建議對所有系結宣告進行驗證,但最可能需要以 屬性標註的[Verify]宣告。 這是因為在許多情況下,原始原生原始程式碼中沒有足夠的元數據來推斷如何最好地產生系結。 您可能需要參考頭檔中的檔或程序代碼批註,才能做出最佳的系結決策。

確認系結正確或已修正為正確之後, 請從系結中移除[Verify] 屬性。

重要

[Verify] 屬性會刻意造成 C# 編譯錯誤,因此您必須強制驗證系結。 當您已檢閱或可能更正程式代碼時,應該移除 [Verify] 屬性。

驗證提示參考

提供給屬性的hint自變數可以與下列檔交叉參考。 系結完成後,也會在控制臺上提供任何所產生 [Verify] 屬性的檔。

[Verify] 提示 描述
InferredFromPreceedingTypedef 此宣告的名稱是由原始原生原始程式碼中緊接在前面 typedef 的 通用慣例所推斷。 確認推斷的名稱正確無誤,因為此慣例模棱兩可。
ConstantsInterfaceAssociation 判斷與 extern 變數宣告相關聯的介面沒有傻瓜證明的方法 Objective-C 。 這些實例會系結為 [Field] 部分介面中的屬性,以接近特定介面產生更直覺的 API,而可能會完全消除「常數」介面。
MethodToProperty 由於 Objective-C 慣例,方法已系結為 C# 屬性,例如不採用任何參數並傳回值(非 void 傳回)。 這類方法通常應該系結為屬性來呈現較好的 API,但有時可能會發生誤判,而且系結實際上應該是方法。
StronglyTypedNSArray 原生 NSArray* 系結為 NSObject[]。 根據透過 API 檔設定的預期,或透過測試檢查數位內容,可能會更強地在系結中輸入數位。 例如,僅包含 NSNumber* 實體掃描的 NSArray* 會繫結為 NSNumber[] ,而不是 NSObject[]

您也可以使用 sharpie verify-docs 工具快速接收提示的檔案,例如:

sharpie verify-docs InferredFromPreceedingTypedef