I got code like this:
Match.h:
#import #import \"player.h\" @interface Match : NSObject { Player *firstPlayer; }
The normal way to solve this cycles is to forward declare classes:
In Match.h:
@class Player; @interface Match ... Player * firstPlayer;
and do #import "Player.h only in Match.m, not in Match.h
#import "Player.h
not
Same for the other two .h files.