Objective Sharpie 由 Aaron Bockover 开发,用于创建适合在 Mono for Objective C SDK 中使用的 C#绑定(Binding)。
Objective Sharpie 使用 Clang 解析 Objective C 头文件。因为该过程是自动进行的,而且可以获得头文件中的所有信息,所以对大部分库而言不存在绑定错误。
为 OS X Lion 和 Mountain Lion 创建绑定既繁琐又乏味,因此 Aaron 创建了 Objective Sharpie 来处理这一问题。据 Aaron 介绍,OS X Lion“有成千上万个新 API”。他继续说到:
不喜欢千篇一律的重复性工作,这就是我实现 Objective Sharpie 的动力。我将 Clang 作为一个库,在解析时,它可以获得源码树的所有细节信息。有了这些信息,我就能生成正确性可以验证的 C#绑定代码了。
必须指出,在构建 Xamarin.Mac 和 Xamarin.iOS 绑定第三方库时,我们使用的是同样的工具,这些工具是 Xamarin Studio 提供的。现在 Objective Sharpie 也没什么不同:通过预先生成正确的绑定定义,它有助于更快地为新 API 生成绑定,同时还能确保这些绑定准确无误。
需要注意的是,该工作尚在进行之中。尽管已经支持大部分语言特性,但代码生成器还不能支持整个 Objective C 语言。它也没有修正命名约定,开发者可以手工处理。
评论