在没有Mac的情况下学习Objective C.

我没有Mac或iPhone。 然而,采用C并使其更具动态性的概念对于smalltalk,python或ruby来说对我来说真的很有吸引力。 我想从目标C开始。

客观C只是C的语法超集还是它真的像C一样。它可以用gcc等编译吗?

我在Ruby中编写了大部分的编程。 Objective C似乎比C更宽容。你可以用C编写Ruby的原生扩展。你能在Objective C中编写Ruby的原生扩展吗?

如何在拥有Mac / iPhone和拥有XCode之外开始使用Objective C?

是的,您可以在MAC / IPhone之外编写,编译和运行目标c程序

请查看以下链接了解详情http://www.otierney.net/objective-c.html#settingup http://www.faqs.org/faqs/computer-lang/Objective-C/faq/

维基百科说

今天它主要用于Apple的Mac OS X和iPhone OS,这两个环境虽然不符合OpenStep标准,但它是Apple的Cocoa API的主要语言,尽管它最初用作NeXT的主要语言NeXTSTEP OS。 不使用这些库的通用Objective-C程序也可以为gcc支持的任何系统编译,其中包括Objective-C编译器。

今天的Objective-C经常与固定的标准对象库(通常称为“套件”或“框架”)一起使用,例如Cocoa或GNUstep。

如果您主要运行Windows并且运行GNUStep,也许您应该获得Linux vm。

苹果贡献了目标c变回gcc(不是他们有很多选择,是GPL)。 因此,无论您在何处设置gcc,都可以设置objective-c编译器。

除此之外, Gnustep环境可以为您提供原始OpenStep / NextStep环境的一些风格。

Objective-C语言与Apple在其上构建的框架之间存在差异。 这些框架由一堆对象组成,您可以在代码中使用它们,如果您的目标是Mac或iPhone,它们会特别有用。 在GNUStep中有一些类似的对象,但它不是Cocoa / etc库的完全替代品,尤其不包括与iPhone相关的任何东西。

GNUStep和Objective-C语言(通过gcc)可用于许多平台,您可以编写自己的程序使用Objective-C对象并与Objective-C中的任何C api进行交互。

Objective-C是C的超集,因此并不比C更宽容,但它可以说比C ++(C的几乎超集)更宽容。 您也可以将Objective-C和C ++与GCC混合使用,但这有点复杂,特别是在exception处理方面。

为了开始和使用该语言,GNUStep和GCC将是一个很好的方式。

我没有看到任何令人信服的理由,为什么你不能使用Objective C进行原生ruby扩展,除了你不会受益太多。 您仍然必须使用较低级别的C Api调用,因为据我所知,没有任何ruby到objective-c绑定。 此外,Objective C附带了一个相当庞大的实用程序类库,虽然有用,但在ruby扩展的上下文中,它们不容易certificate它们的大小和重量。

您可以使用此页面进行ObjC的简单实验: http : //www.codesign.cz/LearnObjC/