2011-10-26 28 views
41

tengo código como este:Xcode nombre de tipo desconocido

Match.h:

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

@interface Match : NSObject 
{ 
    Player *firstPlayer; 
} 

@property (nonatomic, retain) Player *firstPlayer; 

@end 

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 

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 

Xcode no compilará mi proyecto y me mostrará el tipo de error desconocido 'Player 'en Match.h cuando declaro * firstPlayer.

He intentado proyecto de limpieza, reconstrucción, pero sin ningún resultado ...

+10

Tiene un ciclo en sus importaciones: Match.h importa Player.h importa Game.h importa Match.h. Ver [esta pregunta] (http://stackoverflow.com/q/7896440/557219). –

+0

posible duplicado de [archivo de cabecera Objective-C que no reconoce el objeto personalizado como un tipo] (http://stackoverflow.com/q/7896440/557219) –

Respuesta

123

La manera normal de resolver estos ciclos es reenviar declarar clases:

En Match.h:

@class Player; 
@interface Match ... 
    Player * firstPlayer; 

y do #import "Player.h solo en Match.m, not en Match.h

Lo mismo para los otros dos archivos .h.

+0

Funcionó como un amuleto. Gracias. – Myxtic

+2

muchas gracias incluso algunas veces pequeños problemas toman mucho tiempo para resolverlo. Puede ser perder energía de memoria trabajando en el campo del software. –

+0

buen trabajo ..... gracias +1 :) – iLearner

Cuestiones relacionadas