我无法编译我的iPhone项目。在我的CType.h中,我得到了错误:


  找不到“ NSObject”的接口声明,NSObject的超类
  “ CType”。


这会导致很多其他错误,这些错误也在同一头文件中。

我已经读到这可能是由于我的项目中存在循环引用。因此,我尝试将许多标头导入更改为转发声明。还有一些我还没有设法做出前向声明(例如,如果该类继承自另一个类,则它需要导入,并且如果我使用的是委托。尽管如此,可能有一种解决方法)。

我已经多次搜索我的项目,但没有设法找到循环引用。是否有任何提示或技巧来查找循环参考?我认为这可能与CType有关,但事实并非如此。

编辑:

这是我的CType:

接口:

#import <Foundation/Foundation.h>

@interface CType : NSObject

/*
 * Type ID
 */
@property (nonatomic, assign) NSInteger typeId;

/*
 * Type
 */
@property (nonatomic, strong) NSString *type;

/*
 * Initialize with type ID and type
 */
- (id)initWithId:(NSInteger)typeId type:(NSString *)type;

/*
 * Type with type ID and type
 */
+ (CType *)typeWithId:(NSInteger)typeId type:(NSString *)type;

@end


实现方式:

#import "CType.h"

@implementation CType

/* Create setters and getters */
@synthesize typeId;
@synthesize type;

/* Initialize with type ID and type */
- (id)initWithId:(NSInteger)_typeId type:(NSString *)_type
{
    if (self = [super init])
    {
        self.typeId = _typeId;
        self.type = _type;
    }

    return self;
}

/* Type with type ID and type */
+ (CType *)typeWithId:(NSInteger)typeId type:(NSString *)type
{
    return [[CType alloc] initWithId:typeId type:type];
}

@end

最佳答案

我倾向于同意@Hot Licks。这很可能是文件损坏或配置错误,因为从理论上讲,您的代码没有错。

这就是我的建议:

创建一个新类(命名为CType以外的名称),然后将代码从CType迁移到新类。然后删除旧的CType文件。如果此时一切正常,则将新类重命名为CType并查看会发生什么。另外,请仔细检查您的应用程序prefix.pch文件,以查看其中导入了哪些标头。

08-18 23:43