0
#import <Foundation/Foundation.h>
#import "Asset.h"

@interface Person : NSObject{
    int pin;
    NSMutableArray* assets;
}

@property int pin;
-(void) addAsset: (Asset*) iasset; //producing error
@end

「アセット」の配列を含む「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
4

1 に答える 1

4

ヘッダー ファイルに循環依存関係があります。#import "Person.h"を削除しAsset.hて に置き換えることで修正できます@class Person;Personこの変更により、ヘッダーをインポートする必要なく、クラスの存在がコンパイラに通知されます。

#import "Asset.h"同様に、代わりにinPerson.hをに置き換えることもできます@class Asset;

実装ファイルから正しいヘッダーを含める必要があります。

于 2013-05-28T23:50:23.977 に答える