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

时间:2009-05-12 02:35:12

标签: objective-c ruby frameworks

我没有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?

6 个答案:

答案 0 :(得分:6)

Wikipedia

  

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

     

今天的Objective-C经常用于   串联一个固定的库   标准物体(通常称为   “套件”或“框架”),如Cocoa   或GNUstep。

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:1)

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混合使用,但这有点复杂,特别是在异常处理方面。

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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