XCode 4.3,“无法使用多个标头定义未定义类的类别”

时间:2013-04-11 21:39:22

标签: ios objective-c xcode xcode4.3

直到最近,我还有一个在XCode中编译好的项目;但现在我正在摸着以下内容:

  

无法定义未定义类'myClass'的类别

我有一个标题,通过一个类别扩展另一个,如:

myClass.h

@interface myClass:UIView<...>
@property ....
-(void) method....
@end

myClass的+ myCategory.h

#import "myClass.h"
@interface myClass (MyCategory)
-(void) method2...
@end

myClass.m

#import "myClass.h"
#import "myClass+myCategory.h"
...

我对搜索以及编译和运行的项目历史的理解是,这应该是有效的Objective-C,它将我带到XCode。这里有什么想法吗?

3 个答案:

答案 0 :(得分:3)

这里的问题是你的编译器在看到类别被定义或引用的文件之前就已经进入了类别标题。

当他说将导入添加到预编译的头文件时,D Carney对此有所帮助,但是他错误地导入了什么。您希望确保编译器在类别之前看到您的基类标题,以便它知道该类别适用于哪个类。

答案 1 :(得分:0)

好吧,我对上述问题没有解释。我创建了一个新项目,并将所有源文件重新添加到其中。现在编译没有任何问题。

答案 2 :(得分:0)

我遇到了同样的问题。事实证明,您需要将类别包含添加到...-Prefix.pch文件:

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
    #import <CoreData/CoreData.h>
    #import "myClass+myCategory.h"
#endif