1

一部のコードをリファクタリングしましたが、1 つのサブクラスではエラーが発生せず、2 番目のサブクラスではこのエラーが発生します。

最初のケースでは、インターフェイスは次のようになります。

#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>{

2 番目のケースでは、エラーが発生すると、インターフェースは次のようになります。

#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>{

2 番目のケースの @interface 行のコンパイラ エラーは、「'FavoritesTableVC' のスーパークラスである 'CommonEventsTableVC' のインターフェイス宣言が見つかりません。

問題がわかりません。

アップデート

このコードを使用してエラーなしでコンパイルできましたが、代替 (以下に示す) は何らかの理由で機能しません。

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 参照の実行可能な置き換えになるはずですが、あらゆる種類のエラーが発生します。これらのエラーは、インポート ステートメントによって参照されるクラス ファイルにもあります。

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;
4

0 に答える 0