A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© faceseagod 中级黑马   /  2015-10-14 09:28  /  1150 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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 中通常把类拆分开来,拆分成声明和实现两个部分。

12 个回复

正序浏览
挺好的,楼主加油
回复 使用道具 举报
hailiqh 发表于 2015-10-15 09:06
你也打算进IOS13期的吗?一起加油啊

是的呀,我报名了
回复 使用道具 举报
sclea 中级黑马 2015-10-15 23:00:30
11#
补充的相当的全面
回复 使用道具 举报
学习了,恩。
回复 使用道具 举报
学习了,共勉。
回复 使用道具 举报
hailiqh 中级黑马 2015-10-15 09:06:45
8#
faceseagod 发表于 2015-10-14 19:50
就是互相循环拷贝啦,可以用预处理指令#ifndef #end来避免

你也打算进IOS13期的吗?一起加油啊
回复 使用道具 举报
hailiqh 发表于 2015-10-14 19:34
文件内容的重复拷贝,具体都拷贝啥文件啊?

就是互相循环拷贝啦,可以用预处理指令#ifndef #end来避免
回复 使用道具 举报
文件内容的重复拷贝,具体都拷贝啥文件啊?
回复 使用道具 举报
ruoruchujian641 发表于 2015-10-14 13:12
1.便于复用代码。通用性强的重复的功能只要写一遍就可以了,下次要用在其它程序上时只要更改很小的部分或 ...

补充的很全面,大赞
回复 使用道具 举报

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

共同进步啦,多交流
回复 使用道具 举报
进来学习下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马