找不到类的接口声明

时间:2012-06-09 02:25:02

标签: objective-c

我重构了一些代码,在一个子类中没有错误,在第二个子类中我得到了这个错误。

在第一种情况下,界面如下所示:

#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>
#import <QuartzCore/QuartzCore.h>
#import "ResultsHeaderView.h"
#import "ManagingView.h"
#import "CommonEventsTableVC.h"
@class ResultCell;

@interface ResultsTableVC : CommonEventsTableVC <UITableViewDataSource, UITableViewDelegate, NSFetchedResultsControllerDelegate,  resultsHeaderDelegate>{

在第二种情况下,出现错误时,界面如下所示:

#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>
#import "Constants.h"
#import "ManagingView.h"
#import "ResultsHeaderView.h"
#import "CommonEventsTableVC.h"
@class ResultCell;

@interface FavoritesTableVC : CommonEventsTableVC <UITableViewDataSource, UITableViewDelegate, NSFetchedResultsControllerDelegate,  resultsHeaderDelegate>{

第二种情况下@interface行的编译器错误是“无法找到'CommonEventsTableVC'的接口声明,'FavoritesTableVC'的超类。

我看不出问题。

更新

我能够使用此代码进行编译而没有错误,但替代方案(如下所示)由于某种原因不起作用:

CommonResultsTableVC.h

#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>
//#import "MapController.h"
//#import "DataInterfaceObject.h"
#import "ManagingView.h"
#import "ResultsHeaderView.h"
@class MapController;
@class DataInterfaceObject;
@class ResultCell;

@interface CommonEventsTableVC : UIViewController {

@private
    DataInterfaceObject *dataInterface_;
    MapController *mapController_;
    id<managingView> managingViewDelegate_;

}

@property (nonatomic, assign) id<managingView> managingViewDelegate;
@property (nonatomic, assign) DataInterfaceObject *dataInterface;
@property (nonatomic, assign) MapController *mapController;

- (id) initWithFrame:(CGRect)frame andController:(id<managingView>)_managingViewController;

@end

ResultsTableVC.h

#import <QuartzCore/QuartzCore.h>
#import "CommonEventsTableVC.h"

@interface ResultsTableVC : CommonEventsTableVC <UITableViewDataSource, UITableViewDelegate, NSFetchedResultsControllerDelegate,  resultsHeaderDelegate>{

    NSFetchedResultsController *fetchedResultsController_;
    UITableView *tableView_;

}

...

FavoritesTableVC.h

#import "Constants.h"
#import "CommonEventsTableVC.h"

@interface FavoritesTableVC : CommonEventsTableVC <UITableViewDataSource, UITableViewDelegate, NSFetchedResultsControllerDelegate,  resultsHeaderDelegate>{

...

}

...

@end

这是替代方案,但不起作用。我不知道为什么。导入类头文件应该是@class引用的可行替代,但会发生各种错误。这些错误甚至出现在import语句引用的类文件中。

CommonResultsTableVC.h替代(失败)

#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>
#import "MapController.h"         // uncommented
#import "DataInterfaceObject.h"   // uncommented
#import "ManagingView.h"
#import "ResultsHeaderView.h"
//@class MapController;
//@class DataInterfaceObject;
@class ResultCell;

0 个答案:

没有答案