#import <Foundation/Foundation.h>
#import "Asset.h"
@interface Person : NSObject{
int pin;
NSMutableArray* assets;
}
@property int pin;
-(void) addAsset: (Asset*) iasset; //producing error
@end
尝试编写包含“assets”数组的“Person”类的接口。 这条线
-(void) addAsset: (Asset*) iasset;
产生错误。 XCode说,“预期的类型”。谁能告诉我哪里出错了?我可以提供任何其他需要的代码。
Asset.h:
#import <Foundation/Foundation.h>
#import "Person.h"
@interface Asset : NSObject{
NSString* label;
int value;
Person* holder;
}
@property int value;
-(void) setHolder: (Person*)iholder;
-(void) setLabel: (NSString*)iname;
@end
答案 0 :(得分:4)
您的头文件中存在循环依赖关系。您可以通过删除#import "Person.h"
中的Asset.h
并将其替换为@class Person;
来解决此问题。此更改将告诉编译器Person
类的存在,而不需要导入标头。
同样,您可以使用#import "Asset.h"
替换Person.h
中的@class Asset;
。
您仍然希望在实施文件中包含正确的标题。