.h是描述
.m是实现
一般来说 如果.h用到的类 就要在.h中import
如果.h中没用到的 .m中用到的 可以放在.m中import(也可.h中)
这个具体看编码规范
一般为了方便 .h中用到的 在.h中 引用
.m用的在.m中引用
我觉得最大的区别就是写在.m中可以有效减少交叉引用,你用心一点,会发现Fundition和UIKit框架中全部使用.m内引用,.h内用Class声明的方式,这样做对app运行时没有影响的,但是可以提高编译器预处理的速度,你的项目越大,这个影响就越明显。
所以xcode6开始默认模版去掉了从前的公共头文件.pch文件,就是为了提高编译速度。
有的程序员喜欢把所有import语句写在.h文件的头部。而有的程序员则喜欢把import语句写在.m文件头部。
你可能觉得写在哪里都无所谓。
那么,import语句写在.h文件和.m文件的哪一个都无所谓吗?
这并不是真的。
通常,我习惯在.h文件头部加入所有的import语句,但在有一种情况下,我只能把import语句加在.m文件里——这是为了避免交叉引用错误。
如果你不知道什么是交叉引用错误,那么这篇文章将会告诉你:关于一个交叉引用Bug:“can not find interface declaration”
因此我建议你像我一样,平时可以将import语句都放在.h文件里,当编译器告诉你找不到某个类的声明但你明明已经导入了这个类的头文件时,把import语句移到.m文件头部。