2

我知道 Objective-C++ 可以存在,因为 Objective-C 和 C++ 在 C 中有共同点。但是 Objective-C 如何与 Python 共存呢?我知道这一定是可能的,因为 wxPython 使用 Cocoa 来绘制接口。

我正在为 OS X 编写一个纸牌游戏引擎。它将能够玩多个游戏(Klondike、Spider、Free Cell,甚至可能是 Hearts 或 Poker)。它将与 Game Center 一起工作,所以我需要有可用的 Cocoa 框架,但我想编写一个 Python API,所以我可以用 Python 自己编写游戏(因为它更易于使用且更具动态性)。我将如何在我自己的应用程序中实现这种语言混合?

4

2 回答 2

2

如果 Python 应用程序使用已编译的外部库,那么这就是对Python 的扩展。这样做的文档在这里

如果编译的应用程序使用 Python 编写脚本,那么这就是嵌入Python。这样做的文档在这里

于 2012-08-08T23:34:02.743 回答
1

我不是 Cocoa 方面的专家,但我认为您误解了使用它的意义。Cocoa 只是一个导出一些函数的库。任何能够理解函数签名的东西都可以使用它。这并不意味着该事物必须与 Objective-C 兼容。这只是意味着它必须能够理解调用约定。

但是,我很确定 Python 可以在标准 C 和 ObjC 运行时上运行(因为 IIRC 它是前者的扩展),所以我不明白为什么不可能为 Python 制作 Cocoa 绑定。苹果似乎支持它https://developer.apple.com/technologies/mac/cocoa.html

Objective-C 的动态运行时类似于许多现代脚本语言,使用Cocoa Bridge可以轻松地将 Cocoa 的功能映射到其他语言。借助 Cocoa Bridge,开发人员可以使用 AppleScript、Ruby 和 Python 创建一流的 Mac OS X 应用程序。

那么,您要检查的下一个关键字是:Cocoa Bridge ,也许还有https://developer.apple.com/cocoa/pyobjc.html

于 2012-08-08T23:38:17.937 回答