如果你了解Objective-C,很难学到C语言

时间:2009-07-22 03:50:35

标签: c objective-c

我正在通过Stephen Kochan的“Objective-C 2.0编程”自学Objective-C这是一本很棒的书,目前正在第二次读它,我第一次得到它的主旨,现在它是第二次真的开始下沉了。

如果您对Objective-C有中等(约)的知识,那么学习C有多难?我意识到关于首先学习哪种语言似乎存在着无休止的争论。我决定选择Objective-C,因为我对Cocoa Mac Apps / iPhone应用感兴趣。

侧注:对于那些熟悉Chipmunk Physics引擎的人......我最终开始追求C的原因是它使用C.我需要知道多少C才能充分利用它。我打算将它与使用Objective-C

的Cocos2d一起使用

8 个答案:

答案 0 :(得分:5)

鉴于C是Objective-C的严格子集,如果您已经完全了解Objective-C,那么您也知道C语言。

答案 1 :(得分:4)

没有。我学会了C,我来自C#。

然而,很难找到更新的教程/博客,以下是我使用过的一些内容:

博客(我只能找到一个已更新的博客):

教程:

答案 2 :(得分:2)

C和ObjC有很多重叠,但它们的模式非常不同。内存管理尤其完全不同。你如何攻击问题的方式大不相同。 ObjC完全依赖于框架并适应框架而不妨碍框架。在C中,你是最底层的;图书馆大部分时间都依赖你,而不是相反。

也就是说,如果您的目标是编写包含C库的ObjC程序,那么首先学习ObjC绝对是正确的方法,Kochan的书是一个很好的开始(其次是 Mac OS X的Cocoa编程来自Hillegass)。使用像Chipmunk或cocos2d这样的引擎会为你处理一些更难的C编程细节,这无疑有助于你轻松学习。

答案 3 :(得分:1)

基本上,C是Objective-C,没有:

  1. 任何涉及邮件发送的内容(所有[]括号
  2. 以@开头的任何事情(Objective C的人选择在他们添加的所有内容中使用它,以明确什么是扩展名
  3. 此外,还有一些是Objective-C的一部分,但如果你纯粹学习了Objective-C,你可能永远不会使用它。这些实际上很有用,因为有时它们甚至是Objective-C代码中的最佳选择,当你与其他人的代码交互时,你可能碰到它们。比如:

    1. 函数声明语法(无方法)
    2. 功能指针
    3. 结构
    4. 的malloc()/ free()的
    5. 总而言之,我认为从Objective-C迁移到C可能比从头开始学习C更容易。这只是一个猜测,我首先学习了C(大约15年前)并且已经编写了近十年的Objective C代码。

答案 4 :(得分:1)

好吧,我建议在深入研究Objective-C之前获得一些的C经验。为什么?因为Objective-C使您免受许多更复杂和有趣的编程位的影响,例如非常手动的内存管理,疯狂的指针,等等。因为Objective-C是C的严格超集,所以可能有时候你需要使用这些概念,但是没有任何C经验,它可能会非常混乱。我错误地在跳到Objective-C之前没有花足够的时间在C上,所以当我开始研究更复杂的应用程序时,我需要在C上做很多阅读。

答案 5 :(得分:0)

我在学习Objective-C之前学过C,但两者有相似之处和不同之处。 所有if语句,用于&虽然循环在C中都是相同的,但你的GTD是如何不同的。你并没有真正接触到Objective-C中的整个指针,但这在C中是非常重要的,唯一可以解决这个问题的方法就是阅读和练习。这可能看起来令人生畏,但一旦掌握了它,它就不那么糟糕了。函数与语法方法以及它们的调用方式有点不同,所以你也必须学习它,但是如果你得到一本好书(http://www.amazon.com/Programming-Language-Prentice-Hall-Software/dp/0131103628),它应该不那么难。只需阅读并练习!

我还强烈推荐斯坦福iTunes-U编程范例类,在你掌握了基础知识之后,有助于大量学习指针!作为一名年轻的程序员,它确实帮助我很好地掌握了这一切。

答案 6 :(得分:0)

指针是使C变得困难的原因,听起来好像它们不是编程Objective-C的重要部分。

答案 7 :(得分:0)

在Stephen Kochan的Obj-C书中,第13章“基础C语言特性”似乎与C语言有很多关于指针,结构,功能等的讨论。我从来没有第一次阅读它(它有点建议)只有你需要的时候才阅读它但是在我第二次读它之后我可以回去看第13章,它应该让我对C语言与Obj-C比较好。