我想学习objective-c和Cocoa。我想问你是否可以推荐我学习那种语言和cocoa框架的任何东西(适用于Mac OS X开发)。我目前知道PHP。来自PHP的Obj-C难以学习吗? PD:英语不是第一语言,我的水平相当不错。用我的英语知识学习难吗?
答案 0 :(得分:2)
出色!听到你想学习一些新的编程语言真是鼓舞人心。
Objective-C是一种有趣的语言,因为它是ANSI-C的超集,包括Message Passing.您可以考虑首先学习C,因为它将帮助您学习一些与PHP无关的计算机科学基础知识,一旦你了解C,Objective C就容易理解了。
另外,我发现在学习新语言时,理解它们之间的一些差异非常有帮助。 (如果您已经了解以下信息或者它太基本了,请原谅我!)
PHP是一种解释型语言。因此,每次运行PHP脚本时,php二进制文件或CGI可能决定如何处理您在脚本中进行的每个函数调用或语句。另一方面,C是一种编译语言。这意味着首先编写C代码,然后将其“编译”为汇编语言(或多或少是机器代码的书面语言表示),然后将其汇编为机器代码(1和0)。
谢天谢地,您不必自己做这些步骤!编译器和汇编器执行这些操作。关键是C代码最终会转换为二进制应用程序,该应用程序可以直接在计算机的处理器上运行而无需解释。
您需要了解如何自行管理内存和数据结构。在PHP中,会自动为您分配变量和结构的内存。在C或Objective-C中,您的应用程序需要使用函数调用或消息来完成此操作。此外,当您的应用程序不再需要变量或数据结构时,您将需要处理内存。
PHP是所谓的“松散”或“动态”类型的语言,这意味着在脚本运行时检查变量的类型(为了将一种类型转换为另一种类型)。
另一方面,C和Objective-C(大部分)是静态类型的,这意味着在编译应用程序时会检查类型转换。
最后,Objective-C也有消息传递,类似于函数调用,尽管消息总是发送给对象。
还有许多其他差异,但这些是主要的差别。随意提问。
此外,对于其他人,请随时指出我可能错过的任何错误或事情。
答案 1 :(得分:1)
除了Tom的回答,我想说你需要很好地理解内存分配和指针。这些是来自PHP的新概念。
我建议学习和练习从简单到复杂的不同层次的内存管理,我会使用其他语言作为从PHP到Objective-C的桥梁:
工具处理该内存:
这将帮助您理解内存块与指向该内存块的指针或引用之间的区别。
祝你好运