Objective Sharpie Verify 属性
你经常会发现 Objective Sharpie 生成的绑定会使用 [Verify]
属性进行批注。 这些属性表明你应该通过将绑定与原始 C/Objective-C 声明(将在绑定声明上方的注释中提供)进行比较来验证 Objective Sharpie 是否执行了正确的操作。
建议对所有绑定声明进行验证,但对于使用 [Verify]
属性进行批注的声明,则很可能必须对其进行验证。 这是因为在许多情况下,原始本机源代码中没有足够的元数据来推断如何最好地生成绑定。 你可能需要参考头文件内的文档或代码注释来做出最佳的绑定决定。
验证绑定正确或将其修正为正确的绑定后,请从绑定中删除[Verify]
属性。
重要
[Verify]
属性会故意导致 C# 编译错误,使你被迫验证绑定。 查看代码(并尽可能对其进行更正)后,应该删除 [Verify]
属性。
Verify 提示引用
提供给属性的提示参数可以与下面的文档交叉引用。 绑定完成后,控制台上也会提供任何生成的 [Verify]
属性的文档。
[Verify] 提示 |
说明 |
---|---|
InferredFromPreceedingTypedef | 此声明的名称是根据原始本机源代码中紧邻的前面的 typedef 中的通用约定推断出来的。 请验证推断的名称是否正确,因为此约定不明确。 |
ConstantsInterfaceAssociation | 没有万无一失的方法来确定外部变量声明可能与哪个 Objective-C 接口关联。 这些项的实例作为部分接口中的 [Field] 属性绑定到附近的具体接口中,以生成更直观的 API,可能会完全消除“常量”接口。 |
MethodToProperty | 由于存在约定(例如在不采用参数的情况下返回一个值(非 void 返回)),Objective-C 方法被绑定为 C# 属性。 通常情况下,此类方法应作为属性绑定,以呈现更好的 API,但有时可能会出现误报,绑定实际上应该是一种方法。 |
StronglyTypedNSArray | 本机 NSArray* 已绑定为 NSObject[] 。 可以根据通过 API 文档设置的期望(例如头文件中的注释)在绑定中对数组进行进一步的强类型化,也可以通过使用测试检查数组内容来这样做。 例如,仅包含 NSNumber* 实例的 NSArray* 可以绑定为 NSNumber[] 而不是 NSObject[] 。 |
还可以使用 sharpie verify-docs
工具快速接收提示文档,例如:
sharpie verify-docs InferredFromPreceedingTypedef