3

我想在 MonoTouch 项目中使用 OpenFeint。我没有创建正确绑定以将第三方 Objective-C 库与 Mono 结合使用的经验。在 Xamarin 网站上阅读这篇文章并没有真正帮助我。是否有人创建了将 OpenFeint 与 MonoTouch 一起使用所需的绑定,或者有任何人创建我需要的绑定的经验?

4

2 回答 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 回答
1

除了@Jonathan 出色的答案...

github 上有几个可用的绑定项目,例如来自Xamarin,如果您不确定如何将一些 Objective-C 构造转换为 C#,可以为您提供提示。真实的例子通常对理论很有帮助。

如果您在某个特定地方被阻止,请不要犹豫,在此处或在邮件列表中提出具体问题。

于 2012-03-26T12:11:16.070 回答