Objective-C,通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。1980年代初布莱德·确斯(Brad Cox)在其公司Stepstone发明Objective-C。他对软件设计和编程里的真实可用度问题十分关心。Objective-C最主要的描述是他1986年出版的Object Oriented Programming: An Evolutionary Approach. Addison Wesley. ISBN 0-201-54834-8.
Objective-C用途:编写IOS操作系统(如:iPhone、iPod touch、iPad 等苹果移动终端设备 )应用程序和Mac OS X操作系统应用程序的利器。 Objective-C的流行当归功于iPhone的成功,因为Objective-C被用于编写iPhone应用程序。
ObJC是非常实际的语言,它是一个用C写成,很小的一个运行库,只会使应用程序的尺寸增加很小。ObJC完全兼容标准C语言(C++兼容C语言只是在大部分语法上)而在此基础上增加了面向对象编程语言的特性以及smalltalk消息机制。
ObJC为何不支持垃圾回收机制,因为在smalltalk回收时有漫长的死亡时间,容易令整个系统市区功用,ObJC为避免此问题才不拥有这个功能,虽说某些第三方软件加入了垃圾回收机制这个功能,但是Apple在其Mac OS X 10.3中仍未使用这个功能。
和C++不同,Objective-C不支持运算子重载(它不支持ad-hoc多型)。亦与C++不同,但和Java相同,Objective-C只容许对象继承一个类别(不设多重继承)。Categories和protocols不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和二进制不兼容。
Xcode4版本的推出,加入了自动释放,虽不能直截了当的说那就是“垃圾回收”,因为两者机制不同。在Xcode4中的自动释放,也就是ARC(Automatic Reference Counting)机制,是不需要用户手动去Release一个对象,而是在编译期间,编译器自动帮你添加那些以前你经常写的[NSObject release]。
虽然Objective-C是C的母集,但它也不视C的基本型别为第一级的对象。
编译器:我用的就是Xcode 6.01/5.11(愿意用哪个就用哪个吧,每个版本都有自己的优势。)
一路next下去,我们基本上就已经创建好所需的工程了,现在图示的就是一些基本信息,上面有你的系统信息,还有一些工程选项BALABALALA,笔者现在英语水平有限,一大部也是看不太懂,主要还是靠猜。
OK,在Xcode左边的功能栏上,你会看见main.m的文件,这就是主函数了。单击main.m你就会看见如下代码。
@autoreleasepool 这个就是前文提到的,传说中的自动释放池了!这个代码当你创建好工程之后就已经帮你写好了,那么如何编译运行呢?
有没有看到那个播放键? 什么? 看不到? 那就先请你check一下你正在使用的编译器叫什么名字,有可能是你安装错了。。。
如果你清楚明白的看到了这个黑色的播放键,那么我就明确的说,这就是传说中的编译运行按钮~快捷键是(command+R)如果你的代码没有错误的话,那么将会有十分神奇的事情发生。神奇的事情发生了,在编译器的下方(左面的图框是调试框,右边的图框是编译框),你会看到编译结果。
到这里,基本的ObJC的概述和Xcode的简单使用方法就已经结束。