2

我打算使用 D 在 Mac OS X 上创建本机应用程序。为此,当然,D 必须与 Cocoa API 交互。我不知道如何完成这种绑定。我已经看过Cocado并且知道 Michel Fortin 的D-ObjC 桥,并希望了解一些细节:

  • 他们(或任何其他可能的)将 Cocoa 移植到 D 的方法是什么?——在这里,我基本上要求提供技术阅读资源(书籍/文章/参考资料等);

  • 是否可以直接或通过 C ABI 建立与 ObjC 的 ABI 兼容性?— stackoverflow 上有一个问题,其中的答案描述了使用Objective-C 的运行时参考可以实现的目标;

  • 使这种东西很好地工作并获得性能和稳定性水平是否可行,例如,在 Mac OS X 上使用 Qt 框架?

我在这个领域完全没有经验,所以请原谅我的任何技术故障。任何帮助都是不言而喻的。

提前感谢您的回复。

4

2 回答 2

1

我在Jacob Carlborg的 dlang.org论坛上对这个问题有更详细的回答。

于 2012-04-18T14:01:34.757 回答
1
  • 大多数 Cocoa 端口所做的是将 .h 转换为 .di 并提供一个瘦包装器和通用工具,

    这可能会通过opDispatch(string sel,A...)(A args)重载包含一些语法糖,这些语法糖将转化obj.call1(arg1).call2(arg2)为正确的obj_msgsend(obj.ptr,NSSelectorFromString(sel),args)调用

  • 可以通过 C ABI,您可以在 D 规范中阅读更多相关信息

  • 当然,Obj 可能有很多事情。C 编译器可以检查 D 编译器不能检查需要单元测试来找到那些

于 2012-04-15T22:32:53.267 回答