我想在 MonoTouch 项目中使用 OpenFeint。我没有创建正确绑定以将第三方 Objective-C 库与 Mono 结合使用的经验。在 Xamarin 网站上阅读这篇文章并没有真正帮助我。是否有人创建了将 OpenFeint 与 MonoTouch 一起使用所需的绑定,或者有任何人创建我需要的绑定的经验?
问问题
808 次
2 回答
3
这真的很容易。
文件->新建项目->MonoTouch->MonoTouch绑定项目
首先添加 Objective-C 库(*.a 文件),它的 Build 选项应该自动显示Native Library
.
添加他们提供的所有头文件,并带有 Build 选项None
(这仅供参考,帮助您编写绑定)。
通读头文件并开始在 ApiDefinitions.cs 文件中写入绑定:
[BaseType(typeof(NSObject))]
除非他们的类继承自其他东西,否则使用[Export("yourMethod:")]
在方法上使用- 注意方法上的 + 和 - 符号,+ 表示静态方法,
[Static]
最后使用表示 - 如果您遇到委托类(您需要继承的),请添加
[Model]
,否则它将作为密封类出现 - 如果您需要链接其他库进行编译,请修改在 *.a 库下方显示的 Designer.cs 文件中的 [LinkWith] 属性
- 枚举进入另一个 *.cs 文件(我忘记了名字)
#define MyConstant 1
- 像这样的常量应该放在他们所在的头文件的类中。定义一个新的 *.cs 文件,该类为部分。如果您愿意,还可以在类中添加额外的 C# 代码- 将 NSTypes 映射到适当的 C# 类型:NSString -> 字符串等。
- 随意重命名 Obj-C 类型,这样它们就不会那么愚蠢了。我在每个方法、成员等上都遇到过随机前缀——删除类似的东西。
- 阅读您在问题中提供的链接
- 当一切都说完了,只需引用新库(不要在项目设置中使用任何额外的构建选项,你不必再使用它了)
一般来说,自己做是个好主意,这样您就可以像老板一样轻松地绑定 Obj-C 库。这就是我会告诉我部门的新员工的话。
于 2012-03-26T11:55:08.853 回答