macos - 如何酿造 D- cocoa 波特酒?

标签 macos cocoa user-interface d

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

  • 他们(或任何其他可能的)将 Cocoa 移植到 D 的方法是什么? - 在这里我主要要求技术阅读资源(书籍/文章/引用资料等);

  • 是否可以直接或通过 C ABI 与 ObjC 建立 ABI 兼容性? — 有一个question on stackoverflow其中答案描述了 Objective-C's Runtime Reference 可以实现的目标;

  • 让这种东西很好地工作并获得像 Mac OS X 上的 Qt 框架那样的性能和稳定性水平是否可行?

我在这个领域没有任何经验,所以请原谅我的任何技术错误。任何帮助将不胜感激。

预先感谢您的回复。

最佳答案

  • Cocoa ports 的大多数 ports 都会将 .h 转换为 .di 并提供一个瘦包装器和通用实用程序,

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

  • 您可以通过 C ABI 阅读更多相关信息 in the D spec

  • 当然,无论 Obj. C 编译器可以检查 D 编译器无法检查,需要单元测试才能找到那些

关于macos - 如何酿造 D- cocoa 波特酒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10141847/

相关文章:

user-interface - 错误消息文本 - 最佳实践

java - 如何在使用 ActionListener 按钮和 GUI 时将项目添加到数组列表?

c++ - Qt闯关游戏

ios - Touch ID 和 Face ID 的官方图标

swift - NSCollectionViewItem 的圆角

objective-c - cocoa/osx - 阻止 NSTextView 扩展超过其框架尺寸

objective-c - 如何从交换的自定义 View 访问方法/变量

objective-c - objc_getProtocol() 为 `NSApplicationDelegate"返回 NULL ?

java - NSOpenPanel 挂起 java 应用程序

iphone - 如何创建一个小型 Mac 应用程序,通过 WiFi 网络从 iOS 应用程序接收数据?