当我想从一个视图控制器转换到另一个视图控制器时,我通过编写#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。
答案 0 :(得分:0)
您可以#import "SecondViewController.h"
两次,只需检查FirstViewController.h/m
文件,如果两者都这样做。
答案 1 :(得分:0)
我觉得你正在使用这个
@interface
而不是
@implementation
<。>在您的.m文件中。
答案 2 :(得分:0)
我发现该问题与FirstViewController
或SecondViewController
无关 - 更不用说类别了;这是因为我在AppDelegate.h
中导入了几乎所有类的头文件,以初始化UITabBarController
,UINavitationController
,RootViewController
和核心数据之间的关系及其许多必需属性。我不知道当我在AppDelegate.h
中导入一个类时,我无法在其他类的头文件中导入该类。删除#import "FirstViewController.h";
中的#import "SecondViewController.h;"
和AppDelegate.h
,我发现我的应用现在已正确构建。感谢那些在这篇文章中发表评论的人。