这个问题与我关于 C 的其他问题有关:What can you do in C without “std” includes? Are they part of “C,” or just libraries?
我最近开始好奇核心 Objective-C 语言到底包含什么,以及我为 iPhone/OS X 开发所做的 Objective-C 的哪些部分是特定于 Apple 平台的。
我知道语法之类的东西是相同的,但是例如,NSObject
及其 NS
子类的洪流实际上是“标准”Objective-C 的一部分吗?我可以在 Windows 中使用它们吗?
哪些部件大部分是通用的,哪些部件只能在 Apple 平台上找到?
如果你愿意,举一个其他地方使用的 Objective-C 的例子作为更“通用”的例子也会对我有帮助。
谢谢! =)
最佳答案
核心 Objective-C 库目前只有两个实现,以前称为 NextStep(因此带有 NS 前缀)和 OPENSTEP:GNUStep和 Apple 的 OS X。在 Linux 上,如果您保持与 OPENSTEP 规范的兼容性,GNUStep 可以很好地工作。然而,规范是古老的,OS X 的现代代码可能无法正常工作(尤其是在 UI 区域)。 Windows 上的情况更糟。
您可以在 GCC 支持构建目标的任何地方使用 Objective-C 语言。 “NS”类不是语言本身的一部分。
如果您试图在代码库中保持跨平台兼容性,请坚持使用 C 或 C++,仅将 UI 特定行为移至 Objective-C。
关于iphone - 我正在学习的 "Objective-C"有多少是通用的 Objective-C,而不是 Apple 的框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2982424/