在iPhone中导入不必要的文件时出现任何问题?

时间:2012-10-31 05:24:50

标签: iphone

您好我正在开发iphone / ipad应用程序。我拿了一个header.h并导入该header.h中的所有ViewControllers导入。然后我只是在所有类中导入header.h。

header.h包含

#import "loginViewController.h"

#import "signupviewController.h"

我已经在所有必要的header.h中导入了#import view-controllers

如果我这样做,是否发生了任何内存问题?

我知道,在C语言中,如果我们像上面那样完成,则必须包含所有不必要的代码,在objective-c中怎么样?

我用谷歌搜索,但我没有找到所需的答案。

请告诉任何人。

感谢。

3 个答案:

答案 0 :(得分:4)

#import会跟踪已包含哪些标头,如果在编译单元中多次导入标头,则会忽略该标头。

这使得不必使用标题保护。

#import行仅在第一次遇到名称文件的内容时被替换。

底线只是在#import中使用Objective-C,如果您多次导入标题,请不要担心。 #import确保文件只被包含一次,以便您永远不会遇到递归包含问题。但这与#include的情况不同。

答案 1 :(得分:1)

您应该只导入所需的标头。假设您拥有视图控制器1 - 10.您所做的只有在每个视图控制器都需要每个其他视图控制器时才有意义。这不太可能。

这也会减慢编译速度。每个视图控制器最终都会编译每个视图控制器的头文件。为什么要带来所有不需要的细节?

您正在做的事情将不再使用更多的内存,但它浪费了编译时间,而且不是自我记录。通过让每个类只导入所需的内容,您可以更好地查看实际依赖项。

答案 2 :(得分:0)

是的,你可以轻松地访问这种类型的头文件,如下面的常量文件..

这是我的constant.h文件,它是 Objective-C协议模板(文件)。我只是导入这个文件,我访问我在这个文件中定义的所有文件和密钥......

#import <Foundation/Foundation.h>
#import "AppDelegate.h"
#import "yourViewControllers.h"
...etc....
/// you can also use some APIKey globally 

@protocol constant <NSObject> 

@end