Objective-C 诞生于1983年,之前一直默默无闻,后来由于苹果手机销量的爆发式增长,与之相关的 Objective-C 语言也火了起来。
Objective-C 通常简写为 Obj-C,有时也写作 OC、ObjC、Objective C 等,我们在交流过程中通常使用“OC”,本教程中也使用“OC”。不过 Apple 官方只认可“Obj-C”这一种简写形式,其他简写形式都是大家为了交流方便而使用的。
2014年6月,苹果官方发布了新一代用于 Mac OS X 和 iOS 开发的编程语言——Swift,用于替代OC语言,有些读者可能就会产生疑问,是直接学习Swift还是学完OC再学习Swift?
我想告诉大家的是,对于现有的App,80%~90% 都是用OC编写的!如果你将来应聘到公司从事 iOS 开发工作,那么就需要不断优化这些APP,或者为它添加新的功能。
另外,Swift 是新兴语言,各方面的工作还不太完善,还需要时间来填坑,实际项目开发中还不会大量应用,只会在小的模块上试水。
所以,学习 iOS 和 Mac OS X 开发,建议选择 OC。
C语言是一门使用广泛的语言,它的执行效率高,语法简单,可以用来开发桌面程序、操作系统、硬件驱动、服务器后台、单片机等,这在《为什么首选C语言》中进行了详细的介绍。
不过,正是由于C语言的语法简单,支持的编程特性不足,导致它的开发效率低下,要考虑各种边界条件和安全问题,有时一个小问题,就要编写很多代码。于是人们开始对C语言进行拓展,增加了面向对象的编程模式,从而诞生了OC和C++两种语言:
随着 Mac OS X 和 iOS 的不断发展,OC在原有的基础增加了很多新特性。例如用于内存管理的ARC模式,在这种模式下编程,OC语言会实时监控程序的内存,进行自我内存管理,程序员不需要手动释放内存,不用担心内存泄露。
由于OC的底层是C语言,所以OC和C完全兼容,在编程过程中,OC和C可以混合使用。
很多iOS初学者都有这样的疑问,既然OC是由C语言发展而来的,那么学习OC之前要不要先学习C语言呢?
我认为,在学习OC之前应该了解C语言的基本知识,例如C语言的基本数据类型(int、float、char 等)、选择结构(if ... else)、循环结构(for、while)等。
为什么这么说呢?因为OC在基础语法上有99%是和C语言相同的,OC开发者们的主要工作是在C语言的基础上进行拓展,对原有语法的修改很小。在编写OC代码的过程中,会不可避免地使用C语言的知识。
所以我的建议是先学C语言,再学OC;C语言可以学得不深入,但要有所了解,能编写简单的小程序。
本教程也针对有C语言基础的读者编写,如果您还不了解C语言,请猛击《C语言入门教程》学习。
由于乔布斯和当时的管理层经营理念相悖,他于1985年9月离开了自己亲手创办的苹果公司。乔布斯是一个爱折腾的人,离开苹果后立马又创办了自己的公司,名字是NeXT,并选用Objective-C开发OpenStep操作系统(Mac OS X系统的前身)。
在这期间中,NeXT 公司编写了OC的基础类库——Fundation框架。该框架中的很多数据类型名、变量名、函数名都是以NS开头,也就是 NeXT OpenStep 的缩写,这在后续的代码中会经常见到。
1996年,苹果公司陷入破产危机,邀请乔布斯回去,经他本人同意后,苹果公司以4亿美元收购了NeSt公司。1997年,乔布斯出任CEO,大刀阔斧地对苹果进行了调整,并向手机行业发展(iPhone),最终带领苹果走上辉煌之路。
Xcode 是苹果公司开发的一款IDE(集成开发环境),支持 C、C++、OC、Swift 等编程语言,是进行 Mac OS X 和 iOS 开发的专用IDE。
不过 Xcode 不是跨平台的,只能运行在 Mac OS X 上。这就意味着,你需要购买一台苹果电脑,或者在虚拟机上安装 Mac OS X 系统。
Xcode 的安装非常简单,在 APP Store 里面直接下载即可,这里不再赘述。