黑马程序员技术交流社区

标题: OC为什么要使用多文件开发? [打印本页]

作者: faceseagod    时间: 2015-10-14 09:28
标题: OC为什么要使用多文件开发?
1、为什么要使用多文件?
在工作中,通常把不同的类放到不同的文件中,每个类的声明和实现分开,声明写在.h头文件 中,实现写在相应的.m文件中去,类名是什么,文件名的前缀就是什么。 假设有两个类,分别是Person类和Dog类,则通常有下面五个文件:
(1)Person.h Person类的声明文件
(2)Person.m Person类的实现文件
(3)Dog.h Dog类的声明文件
(4)Dog.m Dog类的实现文件
(5)Main.m 主函数(程序入口) 在主函数以及类的实现文件中要使用#import包含相应的头文件。
补充:import有两个作用:一是和include一样,完完全全的拷贝文件的内容;二是可以自动防止 文件内容的重复拷贝(即使文件被多次包含,也只拷贝一份)。 在使用命令行进行编译链接文件的时候,通常是把.m文件单文件编译,然后再把所有的目标文件 链接,但是在Xcode中,是把所有的.m文件都进行编译链接的,如果出现重复定义的错误,那大部 分问题根源应该就是文件内容被重复包含或者是包含.m文件所引起的。 源文件中不论是使用include还是import,都不能包含.m或者是.c文件,只能放声明。因此,在OC 中通常把类拆分开来,拆分成声明和实现两个部分。

作者: wangchao1992    时间: 2015-10-14 10:11
进来学习下
作者: faceseagod    时间: 2015-10-14 12:44
wangchao1992 发表于 2015-10-14 10:11
进来学习下

共同进步啦,多交流
作者: ruoruchujian641    时间: 2015-10-14 13:12

1.便于复用代码。通用性强的重复的功能只要写一遍就可以了,下次要用在其它程序上时只要更改很小的部分或者可以不用更改。
2.便于多人协作。在设计软件之初就可以很清楚地分配各个开发部门的任务。模块的编写者本身只要关注他所写的东西,清楚这一部分的功能,留出接口就可以了。另外,对于整个工程的负责人而言,这样会方便浏览全局的工作进度,统筹人员安排。
3.便于修改和维护。如果能确定只是某个模块有问题,在模块内解决即可,不需要牵一发而动全身。要升级某一部分的功能,可以只针对具体的模块重新开发,节约成本。

作者: faceseagod    时间: 2015-10-14 16:54
ruoruchujian641 发表于 2015-10-14 13:12
1.便于复用代码。通用性强的重复的功能只要写一遍就可以了,下次要用在其它程序上时只要更改很小的部分或 ...

补充的很全面,大赞
作者: hailiqh    时间: 2015-10-14 19:34
文件内容的重复拷贝,具体都拷贝啥文件啊?
作者: faceseagod    时间: 2015-10-14 19:50
hailiqh 发表于 2015-10-14 19:34
文件内容的重复拷贝,具体都拷贝啥文件啊?

就是互相循环拷贝啦,可以用预处理指令#ifndef #end来避免
作者: hailiqh    时间: 2015-10-15 09:06
faceseagod 发表于 2015-10-14 19:50
就是互相循环拷贝啦,可以用预处理指令#ifndef #end来避免

你也打算进IOS13期的吗?一起加油啊
作者: ff774411    时间: 2015-10-15 10:19
学习了,共勉。
作者: 布鲁兹老爷    时间: 2015-10-15 10:23
学习了,恩。
作者: sclea    时间: 2015-10-15 23:00
补充的相当的全面
作者: faceseagod    时间: 2015-10-15 23:02
hailiqh 发表于 2015-10-15 09:06
你也打算进IOS13期的吗?一起加油啊

是的呀,我报名了
作者: L503254118    时间: 2015-10-16 09:52
挺好的,楼主加油




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2