1

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

喜欢header.h包含

#import "loginViewController.h"

#import "signupviewController.h"

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

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

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

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

请告诉任何人。

谢谢。

4

3 回答 3

4

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

这使得没有必要使用标头保护。

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

底线只是使用#importObjective-C如果您多次导入标头,请不要担心。 #import确保文件只包含一次,这样您就不会遇到递归包含的问题。但这与#include 不同。

于 2012-10-31T05:36:56.770 回答
1

您应该只导入您需要的标题。假设您有 1 到 10 个视图控制器。只有当每个视图控制器都需要每个其他视图控制器时,您所做的才有意义。这是不太可能的。

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

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

于 2012-10-31T05:43:54.187 回答
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
于 2012-10-31T05:54:52.297 回答