xcode未知类型名称

Ess*_*sse 42 iphone objective-c ios

我有这样的代码:

Match.h:

#import <Foundation/Foundation.h>
#import "player.h"

@interface Match : NSObject
{
    Player *firstPlayer;
}

@property (nonatomic, retain) Player *firstPlayer;

@end
Run Code Online (Sandbox Code Playgroud)

Player.h:

#import <Foundation/Foundation.h>
#import "game.h"
@interface Player : NSObject
{
}

- (Player *) init;

//- (NSInteger)numberOfPoints;
//- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;


@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSString *surname;
@property (nonatomic, assign) NSInteger *player_id;
@property (nonatomic, retain) NSString *notes;

@end
Run Code Online (Sandbox Code Playgroud)

Game.h:

#import <Foundation/Foundation.h>
#import "match.h"
#import "player.h"

@interface Game : NSObject
{
    NSMutableArray *matches;
    NSMutableArray *players;
    NSString *name;
}

-(Game *) init;

@property (nonatomic, retain) NSMutableArray *matches;
@property (nonatomic, retain) NSMutableArray *players;
@property (nonatomic, retain) NSString *name;

@end
Run Code Online (Sandbox Code Playgroud)

当我声明*firstPlayer时,Xcode不会编译我的项目并在Match.h中显示错误未知类型'Player'.

我试过清理项目,重建它但没有任何结果......

ott*_*t-- 124

解决此循环的常规方法是转发声明类:

在Match.h中:

@class Player;
@interface Match ...
    Player * firstPlayer;
Run Code Online (Sandbox Code Playgroud)

并且#import "Player.h只在Match.h not中的Match.m中执行

其他两个.h文件也是如此.

  • 非常感谢甚至有些时候小问题需要很长时间来解决它可能会失去在软件领域工作的内存能力.. (2认同)