通过单个标头导入所有标头?

时间:2013-11-16 01:15:36

标签: ios objective-c import header-files

我在许多框架中看到,它们有类似Globals.h的东西,它只是导入所有头文件。在其他地方轻松导入单个Globals.h标题以访问所有内容。

我没有使用任何特定的框架,我只是在开发一个标准的,相对简单的项目。我正在做大量的导入,我开始认为我不能只应用这种技术吗?

我可以吗?或者它会导致潜在的问题吗?像递归导入?只是想知道是否有任何特定的方法或情况你可以使用它或注意事项?

感谢。

2 个答案:

答案 0 :(得分:1)

在框架内执行此操作是有道理的。您不希望最终用户导入一堆类,因此您指示他只导入一个类。那个标题将照顾其余部分。 如果总是将a.h b.h和c.h一起导入,在项目中执行类似的操作可以帮助您简化操作,创建名为abAndC.h的头文件也是有意义的。

作为旁注,我总是在我的pch文件中导入我的Constants.h,以避免通过我的项目导入它。

答案 1 :(得分:0)

在任何地方导入所有内容对我来说都没有意义。如果该文件不会包含在pch文件中,则可能会损害编译时间,而且您在任何地方都会暴露出如此多的类详细信息 - 这应该被认为是一种不好的做法。具有全局导入的文件是一个好主意,如果它只包含一个非常受欢迎的标题(我会把那些类的导入放在那里,比方说,30%的类左右)。然后我将该全局导入标头包含到pch文件中,因为它不仅使其在应用程序的任何位置都可见,而且还有助于减少编译时间。此外,请记住在任何可能的地方使用标准库的模块(它还减少了编译时间,不仅包括来自pch文件的情况)。除了流行的类,如果没有必要,我不会在头文件中公开实现细节 - 而是使用前向声明。