2011-10-26 15 views
41

ho ottenuto il codice come questo:Xcode nome sconosciuto tipo

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 non compilerà il mio progetto e mi mostrerà il tipo di errore sconosciuto 'Player 'in Match.h quando dichiaro * firstPlayer.

Ho provato progetto di pulizia, la ricostruzione, ma senza alcun risultato ...

+10

Si ha un ciclo nelle importazioni: importazioni Match.h Player.h importa Game.h importa Match.h. Vedi [questa domanda] (http://stackoverflow.com/q/7896440/557219). –

+0

possibile duplicato di [file di intestazione Objective-C che non riconosce l'oggetto personalizzato come tipo] (http://stackoverflow.com/q/7896440/557219) –

risposta

123

Il modo normale per risolvere questo ciclo è quello di trasmettere dichiarare classi:

In Match.h:

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

e fare #import "Player.h solo in Match.m, not in Match.h

Lo stesso per gli altri due file .h.

+0

Ha funzionato come un incantesimo. Grazie. – Myxtic

+2

grazie mille anche alcune volte i piccoli problemi richiedono molto tempo per risolverlo potrebbe essere di perdere potenza di memoria lavorando in campo software .. –

+0

bel lavoro ..... grazie +1 :) – iLearner

Problemi correlati