2009-12-30 5 views
0

J'ai ces deux classes MobRec & MobDef et je veux faire référence à un pointeur de tableau de (MobDef) * mobInfo de MobRec. #importer le fichier mobdefs.h dans MobRec.h ou .m mais pas de chance?Objectif C une classe ne voit pas l'autre

MobRec.h 
// Basic class unit 
@interface MobRec : NSObject { 
NSString *mName; 
int speed; 
} 
@end 

MobDef.h 
// Master Class holding an array of units 
@interface MobDef : NSObject { 
NSMutableArray *mobInfo; 
} 

@property(retain) NSMutableArray *mobInfo; 
@end 

MobDef.m 
@synthesize MobInfo; 

- (id)init { // to add a new node and initialize it 
mobInfo = [[NSMutableArray alloc] init]; 
MobRec *aNewMobRec = [[MobRec alloc] init]; 
[mobInfo addObject:aNewMobRec]; 
[aNewMobRec release]; 
} 

Répondre

3

Le problème est que les fichiers individuels ont pas connaissance d'autres fichiers dans votre projet, depuis Objective-C est un dérivé de C. Vous devez #import les fichiers d'en-tête de toutes les autres classes que vous devez utiliser:

// ModDef.m 
#import "MobDef.h" 
#import "ModRec.h" 

@implementation MobDef 

@synthesize mobInfo; // case matters here 

- (id)init 
{ 
    mobInfo = [[NSMutableArray alloc] init]; 
    MobRec* aNewMobRec = [[MobRec alloc] init]; 
    [mobInfo addObject:aNewMobRec]; 
    [aNewMobRec release]; 
} 

@end 
0

Eh bien, votre @synthesize ne correspond pas à la déclaration @property - vous déclarez des propriétés pour mobInfo mais générer accesseurs synthétisés pour MobInfo.

De vous obtenez une autre erreur?

+0

qui était juste une faute de frappe dans le poste merci. – user240272

Questions connexes