C和Objective-C入门

时间:2009-01-13 14:08:03

标签: c objective-c eclipse xcode

我最终想要在Objective-C中编程来为OS X和可能的iPhone编写程序。我对C没有任何直接经验,而且我来自网络编程背景。我比Java和Objective C更熟悉java语法。

我正在寻找有关如何入门的建议。看起来我需要从C开始(我还没有足够强大的Mac计算机进行编程,所以无论如何在Windows平台上使用C开始会很好(有关编程环境的信息也会有帮助,我是曾经吃过食))。我只是在寻找书籍推荐,在线教程或任何其他要记住的指针。请记住,尽管我的最终目标是使用Objective-C,因此在学习C时需要记住任何事情,需要注意的事项等等。感谢任何输入。

更新:我认为我需要首先学习C的原因是我目前为Objective-C遇到的大部分教程都假设您已经理解了C语法,我这样做了没有充分。那里有更好的教程吗?

9 个答案:

答案 0 :(得分:9)

我不完全同意放松,他说“C和Objective-C是不同的语言”。 Objective-C是C的严格超集。

当然他知道 - 他的观点是你在进入Objective-C之前不需要完全掌握C语言。我会接下来(并希望澄清它)。

但我确实认为首先使用C获得一些基础知识是值得的,因为关于Objective-C的大多数介绍性文本都将具备基本知识。

我自己没有任何建议,但可能大多数基于互联网的教程都足以达到这个目的(记住,你现在不想在这个阶段掌握它)。如果你想认真对待它,那么K& R的“C编程语言”就是经典文本。

当你可以在C中做一些基本的hello world程序,并理解类型系统,指针和东西 - 然后拿起Aaron Hillegass的“Cocoa Programming for Mac OS X”。这是一本关于Cocoa的书,涵盖了Objective-C,但它是该语言最佳呈现的报道之一。它会假设你在Mac上进行编码(毕竟它是在Cocoa的上下文中)。你可以在Windows上使用GCC来遵循纯语言的东西,但我不推荐它。

如果你最终要在Mac上工作,那么最好在这个阶段,恕我直言。你说你没有“强大到足以编程”的Mac,但任何可以运行OS X的东西都可以让你开始。

答案 1 :(得分:4)

如果你了解java,obj-c对你来说很容易(java受到obj-c的影响很大。)Apple有很好的文档,你可以启动here。在学习obj-c之前我不认为你需要学习C(对不起Joel)。

如果你获得了gcc,你可以在windows上使用obj-c。另请查看cocotron

  

Cocotron是一个开源项目   旨在实施一个   跨平台的Objective-C API类似   苹果公司所描述的那种   Cocoa文档。这包括   AppKit,Foundation,Objective-C   运行时和支持API,如   CoreGraphics和CoreFoundation。

随着关于iPhone开发的所有热议,现在有数十本obj-c书籍。不确定它们有多好,但我建议的经典是{Amon Hillegass Cocoa Programming from Mac OSX

答案 2 :(得分:3)

Stephen Kochan在Objective-C中进行编程是你想要的。它假设没有编程经验但是如果你这样做就不会阻止你,并且将整个事物C与Objective-C超集一起作为一个完整的包介绍。我读了Kochan的上半部分(下半部分进入了Cocoa),现在我正在为Aaron Hillegass开发Mac OS X的Cocoa Programming(第3版),并且阅读Kochan是一个巨大的帮助。这两个是“一两拳”,可以让你立刻前进。

有一个C和Objective-C参考方便,因为Apple在XCode中的C文档与我到目前为止看到的相当糟糕。 K& R的C文本就像C的Encyclopedia Brittanica,就像一套百科全书一样,并不适合每个人。我一直在谷歌搜索引用,并且通常在网络上找到我需要的东西,因为C无处不在。

在找到最适合你的套装之前,你会烧掉几本书,但是对于Objective-C和Cocoa,你不能错过Kochan和Hillegass。当你完成Hillegass的前几章时,你会希望(并且能够)开始自己写一些东西。

答案 3 :(得分:2)

答案 4 :(得分:2)

答案 5 :(得分:1)

我会说首先学习C会更好。一定要像它一样接近它:一种结构化的机器语言。

当你对它感到满意时(不需要真正掌握它),继续讨论Objective C,在那里你将重新发现Java中熟悉的一些东西,但是当它们相似时,知道C基础架构会更加明显。不等同。

非常重要的是不要使用你已经知道的新语言“隐喻”来学习语言。总是试着假装你以前什么都不知道。

答案 6 :(得分:1)

我不知道你的Mac是什么意思强大到可以进行编程(任何Mac都应该这样做),但是很快就可以获得一些至少作为开发系统有用的东西。 (您可能在Mac附带的CD上安装了开发系统,或者您可以从Apple下载它。)

越早得到Xcode,你就越早对它感到满意。

答案 7 :(得分:1)

我最近开始学习Iphone的编程,并尝试了很多不同的书,直到我发现这些帮助我最多(我也强烈推荐获得一个mac,因为Xcode是编写Iphone时的方式):

要注意所有这些书都有相同的作者,因此可追溯性很棒!这些书之间有相互之间的交叉参考,这确实有帮助。

答案 8 :(得分:1)

与他人达成一致,我发现Cocoa Programming for Mac OSX - Hillegass Objective-C的简介,Cocoa框架和整个Apple的做事方式。

您也可以在任何Linux或Windows机器上运行Objective-C,但当然您无法访问所有Apple库,例如。 NS(afaik)。这些框架实际上是Objective-C的全部要点,并且它仍然存在的真正原因是C ++和C#后来出现并且或多或少是围绕自己设计的语言(而不是Objective-C,它是C的严格超集)。

除了指针之外,我认为你可以在不学习C的所有错综复杂和接近金属方面的情况下完成,尽管你可以消化的任何和所有C总是有帮助的。