试图在界面中定义方法。称“预期类型”

时间:2013-05-28 23:40:50

标签: objective-c

#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

1 个答案:

答案 0 :(得分:4)

您的头文件中存在循环依赖关系。您可以通过删除#import "Person.h"中的Asset.h并将其替换为@class Person;来解决此问题。此更改将告诉编译器Person类的存在,而不需要导入标头。

同样,您可以使用#import "Asset.h"替换Person.h中的@class Asset;

您仍然希望在实施文件中包含正确的标题。