Stockfish Chess Engine与Swift中的iOS项目集成

时间:2016-05-16 12:28:26

标签: ios swift game-engine chess

我正在尝试将Stockfish Chess Engine与使用Swift编写的应用程序集成。 Stockfish iOS源代码对所有人开放,但它是用Objective-C编写的,引擎是用C ++编写的。我没有Objective-c的问题,但似乎无法理解它如何与Swift一起工作,这是可能的。 Stockfish引擎没有文档,我很难掌握如何在Swift应用程序中构建它,特别是当这是第一次尝试这样的东西时。其他人向我建议我可以尝试使用cocoapods将引擎暴露给swift但我在这里有点迷失。如果有人对我有任何建议会很棒。谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

你真正想要的是Universal Chess Interface protocol的Swift实现,这样任何兼容的引擎都可以用CocoaPods(或Carthage,或SPM,......)打包并放入任何兼容的Swift应用程序中。这可能是那些建议你尝试使用CocoaPods的人在思考的问题。

对于只是让一些Objective-C代码与Swift链接的雄心勃勃的任务,是绝对可能的,你需要所谓的“桥接头”来向Swift公开Objective-C代码。完整的详细信息在免费书中,您可以下载到iBooks:

Using Swift with Cocoa and Objective-C

此文档也在Apple,here's a direct link处于在线相关部分:

  

要在与Swift代码相同的应用程序目标中导入一组Objective-C文件,您需要使用Objective-C桥接标头将这些文件公开给Swift。当您将Swift文件添加到现有的Objective-C应用程序或将Objective-C文件添加到现有的Swift应用程序时,Xcode可以创建此头文件...

此过程通常 Just Works™。如果没有,请搜索“桥接标题”,您应该找到许多适当的讨论!