我正在学习的"Objective-C"中有多少是通用的Objective-C,而不是Apple的框架?

Chr*_*per 11 iphone language-features programming-languages objective-c ios

这个问题与我的其他一个关于C的问题有关:在没有"std"的情况下你能用C做什么?它们是"C"的一部分还是仅仅是图书馆?

我最近对于核心Objective-C语言真正包含的内容感到好奇,我为iPhone/OS X开发所做的Objective-C的哪些部分特定于Apple平台.

我知道像语法这样的东西是一样的,但是例如,它的子类NSObjectNS子类实际上是"标准"Objective-C的一部分吗?我可以在Windows中使用它们吗?

哪些部分在很大程度上是通用的,哪些部分我只能在Apple平台上找到?

如果你愿意,举一个在其他地方使用的Objective-C的例子作为更具"普遍性"的例子对我也有帮助.

谢谢!=)

Yan*_*min 13

目前只有两个核心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.