当我使用Objective-C类别时如何导入另一个视图控制器头文件?

时间:2014-02-28 23:35:00

标签: ios objective-c

当我想从一个视图控制器转换到另一个视图控制器时,我通过编写#import "SecondViewController.h"将第二个视图控制器的头文件导入到我的第一个视图控制器的头文件中。但是,由于我已经在第一个视图控制器中定义了UIColor类别,当我尝试导入第二个视图控制器时,我输入以下错误:Duplicate interface definition class for SecondViewController

这是我的FirstViewController.h



#import 
#import "SecondViewController.h"

@interface FirstViewController : UIViewController

@end

@interface UIColor (ColorWithInt)
+ (UIColor *)colorWithR:(CGFloat)red G:(CGFloat)green B:(CGFloat)blue A:(CGFloat)alpha;
@end

到目前为止,当我开发这个应用程序时,我没有遇到任何此类错误,所以肯定是这个类别导致了这个问题。当我想导入另一个视图控制器类时,使用类别是否可行?或者有没有其他方法来扩展UIColor?我只想定义一个函数,它将RGB作为0~255整数,而不是UIColor默认使用的0~1浮点值。

我使用的是iOS 7和Xcode 5。

3 个答案:

答案 0 :(得分:0)

您可以#import "SecondViewController.h"两次,只需检查FirstViewController.h/m文件,如果两者都这样做。

答案 1 :(得分:0)

我觉得你正在使用这个

@interface 

而不是

@implementation
<。>在您的.m文件中。

答案 2 :(得分:0)

自我答案

我发现该问题与FirstViewControllerSecondViewController无关 - 更不用说类别了;这是因为我在AppDelegate.h中导入了几乎所有类的头文件,以初始化UITabBarControllerUINavitationControllerRootViewController和核心数据之间的关系及其许多必需属性。我不知道当我在AppDelegate.h中导入一个类时,我无法在其他类的头文件中导入该类。删除#import "FirstViewController.h";中的#import "SecondViewController.h;"AppDelegate.h,我发现我的应用现在已正确构建。感谢那些在这篇文章中发表评论的人。