有关在线学习C的任何建议,以准备学习Objective-C

时间:2010-10-28 16:57:50

标签: c++ objective-c c macos ios

我一直在编程PHP& mySQL大约8年了。我每天都在项目中理解并使用现代软件架构和OOP。我决定要学习一些新东西。

我昨天终于决定要学习C并最终学习Objective-C,这样我才能开始创建Mac / iOS应用程序。 (你会推荐C,C#还是C ++?我只是假设C最好。)

那就是说,我想念在我的图形计算器上编程BASIC tic-tac-toe游戏的日子哈哈。我想在C中获得一个非常好的基础,也许可以创建一些命令行游戏,然后最终使用Objective-C进行GUI编程

您会在哪里推荐我开始在线查看。我不仅想了解如何使用C语言编写代码,而且还想了解代码的工作原理和原因。

谢谢&祝我好运: - )

7 个答案:

答案 0 :(得分:2)

它不在线,但是为了学习C,我建议你阅读Kernighan和Ritchie的 The C Programming Language,2nd ed。(也称为“K& R”)。这是一个很小的卷,传达了C89的基本原理。您可以在当地图书馆免费找到它;无论如何,这就是我所做的。 C99改变了一些东西,但语言的核心保持不变。

我不记得它是否涉及如何加载和链接可执行文件以及如何通常使用堆栈和堆的细节。为此,请查看最新版的Patterson和Hennessy的Computer Organization and Design: The Hardware/Software Interface.

如果您已经了解OOP,并且熟悉C语言,那么选择Objective-C就像阅读Apple的The Objective-C Programming Language并查看几个示例一样简单。

Objective-C很简单,但Mac / iOS框架是庞大的。大多数时间学习使用Objective-C为Mac / iOS编程将花费在学习框架以及如何与执行环境(NSApplication / UIApplication,NSRunLoop,响应者链和事件处理等)合作。您可以使用Apple的文档,但Hillegass的 Mac OS X的可可编程(目前是第三版)是Mac OS X桌面编程的标准非Apple介绍。 iOS编程的明确标准介绍尚未出现,但我推荐Conway和Hillegass的 iPhone编程。阅读Hillegass的另一本书之后,您会对中使用的教学风格感到舒服和熟悉iPhone编程

答案 1 :(得分:1)

如果你想做Mac / iOS应用程序,只需学习objective-C。我不认为你会从C语言“向上移动”到obj-c,而只是学习两种不同的编程语言。在C中工作与在C ++或obj-c中工作有很大不同。掌握C将帮助你成为...... C中的高手,而不是obj-C。

我觉得这就像是说你应该先学习如何骑摩托车以学习驾驶汽车。仅仅因为它们都有轮子,并不意味着它就像那样。

另一方面,如果你觉得C会因为其他原因而对你有用(很可能是这样),那里有很多关于C的好书。我推荐Kernighan& C编程语言。 Ritchie(通常仅由K& R引用)。

答案 2 :(得分:1)

不要学习C来为Objective-C学习,这一步骤是不必要的。

我来自C#背景,当我第一次开始学习Objective-C时,我几乎没有C经验,这在使用Objective-C时没有抑制我。你最重要的是OOP和软件架构。这将比你学习C更进一步。

我发现在Apple的文档中可以找到学习Objective-C,特别是iOS编程的最佳资源:

另一个很好的资源是Cocoa with Love,它写得非常好并且有一些很棒的内容,特别是:

同样,我发现很多人喜欢AppsAmuck演示。我个人发现它们的编码很差,但是有一些很好的区域特定的例子可用于动画,网址等。

答案 3 :(得分:0)

我建议学习Objective-C,因为它是如此不同C.你应该知道开发PHP的大部分C语法。

答案 4 :(得分:0)

我真的认为你不需要在C内部进行太深入,只是因为在Objective-C中开发时通常不需要使用C代码(或者至少不是你要学习的功能)。直接从Objective-C开始,并在需要时尝试填充孔。

尽管Objective-C被认为是C语言的扩展(从语法的角度来说),它几乎取代了你需要用C-Objective-C及其类型做的所有事情,所以没有真正需要使用它。通常在与低级别但不那么频繁的接口时需要它(因为几乎所有东西都有Obj-c包装器)。

答案 5 :(得分:0)

Scott Stevenson的Cocoa Dev Central提供了许多有用的Cocoa教程,包括Cocoa程序员的C教程以及关于该主题的其他几个有用资源的链接。

另一个好人是Masters of the Void,是长期的Mac程序员Uli Kusterer。

答案 6 :(得分:0)

如果你真的想在Objective-C之前学习C,那就去吧。对于许多人来说,这是一个不必要的步骤,但你最终会使用它。如果您决定跳过学习C并深入了解Objective-C,Kochan's book是一个温和的“从头开始”的介绍。

对于C来说,获得一本书比试图找到在线教程更好。经典文本(就像这里的每个人都说的那样)是K&R C book。它是众所周知的标准。问题是它非常干燥,并不适合自学。它更像是一本课堂书。

最好的自学C书是K.N.国王的C Programming: A Modern Approach。它价格昂贵,但节奏非常好,深入,每章末尾都有理解问题。我从撰写经典Objective-C书籍Aaron Hillegass的人那里找到了这本书。他理解教学并推荐它,因为它是一本值得学习的好书。它将帮助您考虑C和编程,K& R将通知您。

就个人而言,我放弃了为iPhone编程学习C的目标,并从Hillegass的书(和Jeff LaMarche's book)中学习了Objective-C。我在编写或理解C代码的奇怪场合感到困惑,但这并不是一个巨大的障碍。