2

直到最近,我有一个项目在 XCode 中编译得很好;但是现在我正在用以下内容挠头:

无法为未定义的类“myClass”定义类别

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

我的类.h

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

myClass+myCategory.h

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

我的班级.m

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

我从搜索以及该项目编译和运行的历史中的理解是,这应该是有效的 Objective-C,这导致我使用 XCode。这里有什么想法吗?

4

3 回答 3

3

这里的问题是您的编译器在看到定义或引用类别的文件之前就运行到类别头中。

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

于 2013-08-26T17:01:30.150 回答
0

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

于 2013-04-11T22:53:42.363 回答
0

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

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
    #import <CoreData/CoreData.h>
    #import "myClass+myCategory.h"
#endif
于 2013-04-26T15:37:11.010 回答