首页 科技 军事 财经 教育 体育 房产 健康 汽车 安全 热点 人才 推选

财经

旗下栏目:

《objective-c基础教程》学习笔记(四)—— OC面向对象编程初探

发布时间:2019-09-14 来源:原创/投稿/转载 作者:admin 人气:

  在上篇博文中,我们编写了一个可以输出不同几何类型的小程序。通过C语言的struct结构体,给大家感受了下,对象的大概样子。

  如果用Obejctive-C的面向对象的特征来实现。那么,drawShape函数应该修改成这样:

  这里,函数上传入的id类型,是指泛型(即:可以用来引用任意类型的对象)。这里的指是一个包含struct结构体的对象。循环体中的id是一个指针类型,指针依次指向数组中的各个几何对象。

  [shape draw]:这个写法比较独特,这里的方括号不是像C语言中一样,表示数组。在Objective-C中,方括号表示通知某个对象去做什么操作(类似消息), 括号前第一个参数表示的是:对象,其余部分表示的是需要对象执行的操作。

  通过上面改编例子的引入,接下来,就给大家大概的介绍下Objective-C的面向对象的相关内容。在正式转入Objective-C编程之前,先给大家普及下面向对象的几个基本概念。(详细介绍,可以请教度娘或者相关参考书)

  注:在Objective-C中,只要看到@符号,就可以将其看中是C的扩展。

  PS:上面只是对方法进行了声明,具体的方法还没实现。在定义方法的时候,前一个括号中的表示返回值的类型,后一个表示调用这个方法要传入的参数的类型。

  一般创建Objective-C项目的时候,会自动创建两个文件。.h结尾的头文件和.m结尾的实现文件(这个.m类似C语言中的.c,C++中的.cpp)。

  在Objective-C中,有一种叫中缀符的语法技术。方法的名称和参数可以合在一起。

  好了,那么接下来。我们就将上一篇博文中的代码修改成用Objective-C的语法的吧。

  有两个错误提示,之前以为是代码写的错误。但是反复查阅,还是没有发现问题。

  找出了错误原因:由于 XCode5.1 中缺省ARC(内存管理的一种模式,后面讲内存管理的时候会详细介绍)就是 ON 的状态,所以编译旧代码的时候往往有Automatic Reference Counting Issue的错误信息。

  设置完之后点击保存,错误提示就消失了。这个时候点击运行按钮,就可以看到运行结果如图:

  但是,通过今天修改过的Objective-C的例子,我们可以看出代码中了有很多地方都是重复的。

  比如定义和实现Circle,Rectangle,Egg的代码,基本都是重复的,这就很很大的优化空间了。

  下篇博文,我们将继续延续这个例子展开。介绍下Objective-C中继承方法的使用。

责任编辑:admin