【问题标题】:Does Macintosh have a message based paradigm like Windows?Macintosh 是否有像 Windows 这样的基于消息的范例?
【发布时间】:2012-07-18 06:59:45
【问题描述】:

我是系统编程的新手,我认为您可以提供帮助。

我正在 Windows 上学习基于消息的编程(如 getmessage()),我的许多消息来源将其称为 Windows 特有的东西。

这是 Mac 上的范例吗?在基于 Unix 的操作系统上是否有 getmessage() 或 peekmessage() 的等价物?还是事件处理方式不同?

如果他们有显着不同,我很想听听赞成和反对的意见。

【问题讨论】:

  • 虽然从未在 OSX 上做过任何编程,但我认为涉及 GUI 的编程将是基于事件的,类似于 Windows 系统,但抽象会有所不同。在底部可能有某种消息队列,但它可能更隐藏。我建议您先阅读有关 OSX 编程的教程,如果您有具体问题可以回来询问。
  • 据我所知,基于 Objective-C/Cocoa 的编程就是基于对象并在这些对象之间传递消息。我不知道这与 Windows 的 getmessage 相比如何,但消息传递是 Objective-C 的基本部分。

标签: windows macos unix system


【解决方案1】:

有一个message queue,在onetwo 无关的问题中涉及,讽刺的是inverse question。它适用于大多数基于 Unix 的操作系统,但不适用于 BSD derivatives like OSX,它有自己的基于 Cocoa 的 NSOperationQueue 以及对 Grand Central Dispatch 的支持。以下是一些命令:

  • mq_send
  • mq_receive

参考文献

【讨论】:

    【解决方案2】:

    我当然不是 Apple IOS 编程方面的专家,但我已经做了足够多的工作来了解它的基础知识。我所知道的是,它都是基于事件的,例如 Windows .NET Forms 和 WPF。我没有看到任何使用 Cocoa 的代码与消息循环等效。同样在我读过的书中,我没有看到或读过任何能引导读者转向任何这样的 API 的东西。如果你打算在 IOS 中编程,我强烈建议你坚持 IOS 公认的规范。这意味着不要将一个编程概念强加在一个原本不接受它的系统上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 1970-01-01
      • 2016-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多