- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试将 Stockfish Chess Engine 与一个用 Swift 编写的应用集成。 Stockfish iOS 源代码对所有人开放,但它是用 Objective-C 编写的,引擎是用 C++ 编写的。我对 objective-c 没有任何问题,但似乎无法理解它如何与 Swift 一起工作,这是否可能。 Stockfish 引擎没有文档,我很难理解它将如何在 Swift 应用程序中构建,尤其是当这是我第一次尝试类似的东西时。其他人向我建议我可以尝试使用 cocoapods 将引擎暴露在 swift 中,但我在这里有点迷路。如果有人对我有任何建议,那就太好了。感谢您的宝贵时间!
最佳答案
这里您真正想要的是 Universal Chess Interface protocol 的 Swift 实现这样任何兼容的引擎都可以与 CocoaPods(或 Carthage,或 SPM,......)打包并放入任何兼容的 Swift 应用程序中。那些建议您尝试使用 CocoaPods 的人可能就是这么想的。
对于仅让一些 Objective-C 代码与 Swift 链接的不太雄心勃勃的任务,是的,这绝对是可能的,您需要所谓的“桥接 header ”来将 Objective-C 代码公开给 Swift。完整的详细信息在一本免费的书中,您可以下载到 iBooks:
Using Swift with Cocoa and Objective-C
此文档也在 Apple 在线提供,here's a direct link到直接相关的部分:
To import a set of Objective-C files in the same app target as your Swift code, you rely on an Objective-C bridging header to expose those files to Swift. Xcode offers to create this header file when you add a Swift file to an existing Objective-C app, or an Objective-C file to an existing Swift app...
这个过程通常 Just Works™。如果没有,请搜索“桥接头”,您应该会找到很多合适的讨论!
关于ios - Stockfish Chess Engine 与 Swift 中的 iOS 项目集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37253950/
我有一个 FEN位置,我想分析哪个位置更强。 例如,我有这个职位 rnbq1bnr/pp2k2N/8/2p1p2Q/4N3/8/PPPP1PPP/R1B1KB1R b KQ - 0 1 如何使用 St
我已经用PYTHON写了一个国际象棋软件,它通过这个库使用了斯托克菲什:https://pypi.org/project/stockfish/。该软件运行良好,运行良好。太好了,实际上是…。我的想法是
在我项目的某个地方,我使用 fork 和 pipe 来执行另一个进程并通过管道传输它的 I/O 以与其通信(我用 C++ 编写它)。当我在 Ubuntu 14.04 中编译它时没有问题,它会工作得很好
我正在尝试研究如何将 stockfish(或任何 UCI 兼容引擎)集成到我的 Android 应用程序中。 我从这里下载了 stockfish Android zip: Download Stock
早上好。我正在尝试将 Stockfish 实现到 Unity 国际象棋游戏中,有人告诉我最好的方法是使用 Spawn.Process有谁知道我可以查看并作为引用的现有代码? 不同的游戏状态是与 AI
早上好。我正在尝试将 Stockfish 实现到 Unity 国际象棋游戏中,有人告诉我最好的方法是使用 Spawn.Process有谁知道我可以查看并作为引用的现有代码? 不同的游戏状态是与 AI
我想在我的网站上为我的学生制作一个国际象棋拼图。我使用 stockfish.js 来玩这个引擎。如何更改棋盘上的起始位置?我尝试更改所有 FEN 字符串但没有用。在哪里寻找功能或其他东西?有谁能帮帮我
我编写了一个具有非常漂亮的 GUI 的国际象棋程序 (PyQt5)。当我输入一个 Action 时,它会对其进行分析并更新棋盘的 SVG 表示形式 - 这要归功于出色的 python-chess 模块
我正在尝试编写一个通过命令行与 Stockfish 国际象棋引擎交互的程序。我研究过使用管道和重定向 cin/cout,但问题是 Stockfish 运行它自己的 shell 而不是只给出单行输出,例
自 Stockfish是评价最高的国际象棋引擎,众所周知它非常高效,我决定打开它的源代码并尝试了解它是如何工作的。 我遇到了这段代码,只需将位板移动到某个方向(北、南、东...) 取自 STOCKFI
我正在尝试将 Stockfish Chess Engine 与一个用 Swift 编写的应用集成。 Stockfish iOS 源代码对所有人开放,但它是用 Objective-C 编写的,引擎是用
目标是一个 Angular 应用程序,它可以在浏览器中运行并与国际象棋引擎对战。我想将 Stockfish.js 作为 Web Worker 运行。当使用指向 stockfish.js 文件的 uri
我是一名优秀的程序员,十分优秀!