我想学习Objective C,但我想做得恰到好处。在开始之前,我应该先学习另一种语言吗? (我在考虑C / C ++)。
显然这是非常主观的,但任何帮助都会受到赞赏。
答案 0 :(得分:1)
我建议学习C,因为C中合法的任何内容在Objective C中都是合法的.C的大部分语法都传递给Objective C(@
除外)。指针在C中非常相关,因为它们在Objective C中,所以很好地理解来自C的指针是必不可少的。 C是一种过程语言,而Objective C是面向对象的。 Java,C#和C ++等语言将使您更容易进入OO状态,这是Objective C的关键部分。
编辑:如果你真的想要全力以赴,那么也要学习Smalltalk,因为这是Objective C从中获取消息传递思想的语言。
答案 1 :(得分:0)
Objective-C建立在C之上,它是C,并添加了一些额外的东西。您可以在.m *文件中编写纯C代码,并且可以期望它能够正常运行。所以你对C的了解越多,你对Objective-C的理解就越多。
例如,有人问我在Objective-C中如何使用以下代码行:
NSString *string = @"Hello, World!"; //**
基本上,他问我怎样才能将字符串文字@"Hello, World!"
分配给指针类型的变量。但如果他经历过C,就没有必要提出这个问题了。因为在C中,您可以编写以下代码行:
char *string = "Hello, World!";
它实际上将指向char数组的指针 - "Hello, World!"
分配给当然是指针类型的变量string
。
不仅如此,Objective-C大量使用了Block,而且block又是C的东西。同样,函数,结构等的指针都来自C到Objective-C。
Objective-C在向控制台发送消息时也使用printf
之类的语法。
所以,是的。首先学习C绝对可以帮助你更好地理解Objective-C。
* Objective-C文件通常以.m扩展名
存储 **我们使用@
符号,以便编译器可以区分哪些是C字符串(以@开头),哪些是Objective-C字符串(以@开头)。
答案 2 :(得分:-1)
之前不要学习C ++!它可能会让您感到困惑,也无助于理解Objective-C。如果你想了解Objective-C的面向对象部分,你应该看看Smalltalk。 Smalltalk非常适合初学者,但不幸的是,没有太多针对成年人的教材。
但是我建议先学习Objective-C而不先学习其他任何内容。有一些书籍和课程有重点。