【问题标题】:OpenFeint with MonoTouch使用 MonoTouch 的 OpenFeint
【发布时间】:2012-03-26 09:29:30
【问题描述】:

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

【问题讨论】:

    标签: xamarin.ios openfeint


    【解决方案1】:

    真的很简单。

    文件->新建项目->MonoTouch->MonoTouch绑定项目

    首先添加 Objective-C 库(*.a 文件),它的 Build 选项应该自动显示Native Library

    添加他们提供的所有头文件,并使用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 库了。这就是我会告诉我部门的新员工的话。

    【讨论】:

    • 我已经下载了 OpenFeint SDK 并且能够使用 xcode 构建它。不幸的是,我的硬盘上的任何地方都没有 *.a 文件。关于如何获得它的任何指示?
    • 我在下载中看到了一个BuildUniversalBinary.sh 文件。你能运行它,看看它做了什么吗?我现在在 Windows 上,我不能。
    • 我正在尝试运行该文件,但它给了我以下错误:builduniversalbinary.sh: line 6: CONFIGURATION: unbound variable。我试图弄清楚如何解决它。让我确认一下我应该在终端中按如下方式使用该文件:“sh BuildUniversalBinary.sh”
    • 你也可以试试.\BuildUniversalBinary.sh,你可能需要先运行chmod 755 BuildUniversalBinary.sh
    • 我不断收到配置未绑定变量错误。我已阅读 SDK 附带的说明,执行了所有步骤。我可以使用 xcode 构建 SDK,但 BuildUniversalBinary.sh 不断抛出该错误。所以,因为我确实有一个名为 OpenFeint 的 23MB 文件,所以我想我会尝试添加扩展名 .a 并看看它会把我带到哪里......让你发布!
    【解决方案2】:

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

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

    如果您在某个特定地方被阻止,请随时在此处或mailing-list 上提出具体问题。

    【讨论】:

    • 谢谢,很好的建议!我会对两个答案都投赞成票,但可惜我没有必要的声誉。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 2011-04-30
    • 1970-01-01
    相关资源
    最近更新 更多