我有一个奇怪的问题,这是我的Headerfile ViewController.h
#import <UIKit/UIKit.h>
#import "MapField.h"
@interface ViewController : UIViewController{
IBOutlet UIView *simField;
IBOutlet UISegmentedControl *segmentControl;
IBOutlet UILabel *timeLabel;
double fieldAlpha;
IBOutlet UISlider *alphaSlider;
double tickTime;
int totalNumberOfCars;
}
/*shortened, here are the property ... declarations usually */
-(MapField*)findDepartureField;
-(MapField*)findDestinationField;
MapField.h类看起来像这样:
#import <UIKit/UIKit.h>
#import "ViewController.h"
@interface MapField : UIImageView{
UIViewController *delegate;
int x;
int y;
int numberOfCars;
double wAb;
double wAn;
int dFahrtdauer;
}
@property (nonatomic) int x;
@property (nonatomic) int y;
@property (nonatomic) int numberOfCars;
@property (nonatomic) double wAb;
@property (nonatomic) double wAn;
@property (nonatomic) int dFahrtdauer;
@property (nonatomic, retain) UIViewController *delegate;
-(void)setDisplayMode:(int)mode;
@end
看起来很好并且工作总是很好,但是在这两行中我在ViewController.h中遇到了一个奇怪的错误:
-(MapField*)findDepartureField;
-(MapField*)findDestinationField;
错误:预期类型(并且MapField标记为红色)。
我不明白。我检查了一千次。它必须工作!其他地方一定有一些奇怪的错误!
答案 0 :(得分:0)
在ViewController的@class MapField
调用上方添加@interface
,告诉编译器是,它是一个类。
答案 1 :(得分:0)
从#import ViewController.h
取消MapField
并添加@class ViewController
(如有必要)可行。对我来说,似乎问题是.h文件的循环引用,并且ViewController.h
的引用似乎是不必要的。如果需要,您可以对@class
类使用ViewController
转发声明。