2009-09-14 2 views
0

Je reçois la même erreur, mais j'ai vérifié pour vous assurer que les propriétés ont été correctement définies dans le fichier.Erreur: demande de membre theSizes quelque chose n'est pas une structure ou union

Voici le code: NSUInteger theSizesCount = [le nombreWhe.theSizes];

L'erreur est "erreur: demande de membre theSizes dans quelque chose de pas un strucutre ou union.Ce fichier .m est l'importation de 6 fichiers .h, et 4 d'entre eux ont les mêmes propriétés dans le Whho, mais il est lié à divers Super Classes: ce fichier .m ne met en oeuvre que l'un d'entre eux, et theWho et theSize sont sythesized

De même, dans ce code, et la variableSizes est vert, mais la variableWho n'est pas.En outre, l'erreur se produit dans plusieurs endroits pour NSUIntegers, NSMutableArray etc.

Où vais-je tort? Une partie du code de fichier d'en-tête est au-dessous.


// TheSize.h 

@class TheWho; 

@interface TheSize : NSManagedObject 
{ 
} 

@property (nonatomic, retain) NSString *name; 
@property (nonatomic, retain) NSString *amount; 
@property (nonatomic, retain) TheWho *theWho; 
@property (nonatomic, retain) NSNumber *displayOrder; 

@end 

et ..

// 
// TheWho.h 
// 


@interface ImageToDataTransformer : NSValueTransformer { 
} 
@end 


@interface TheWho : NSManagedObject { 
} 

@property (nonatomic, retain) NSString *instructions; 
@property (nonatomic, retain) NSString *name; 
@property (nonatomic, retain) NSSet *theSize; 
@property (nonatomic, retain) UIImage *thumbnailImage; 

@property (nonatomic, retain) NSManagedObject *image; 
@property (nonatomic, retain) NSManagedObject *type; 

@end 


@interface TheWho (CoreDataGeneratedAccessors) 
- (void)addTheSizesObject:(NSManagedObject *)value; 
- (void)removeTheSizesObject:(NSManagedObject *)value; 
- (void)addTheSizes:(NSSet *)value; 
- (void)removeTheSizes:(NSSet *)value; 
@end 

Répondre

0

Vous devez toujours définir les variables membres. La directive @property déclare les méthodes accesseur, pas les membres sous-jacents.

@interface TheWho : NSManagedObject { 
    NSString *instructions; 
    NSString *name; 
    NSSet *theSize; 
    UIImage *thumbnailImage; 

    NSManagedObject *image; 
    NSManagedObject *type; 
} 
+0

Faux. Le runtime sur iPhone va «synthétiser» les ivars. De plus, les propriétés sont dynamiques quand il s'agit de sous-classes NSManagedObject, si je ne me trompe pas. – jbrennan

0

Vous essayez d'accéder à theWho.theSizes mais selon votre fichier d'en-tête, vous devriez essayer theWho.theSize (sans le s final). À moins qu'il n'y ait une faute de frappe dans la façon dont vous l'avez tapé ici, et qu'il n'a pas été copié directement.

+0

Merci. Je l'ai essayé, et il a généré plus d'erreurs qu'avant. J'utilise l'exemple de code Core Data Recipes comme guide, et il utilise à la fois la variable et la variable + training S. –

1

J'ai vérifié à nouveau mes déclarations, et j'ai dû ajouter un "s" à l'entrée NSSet * theSize. Ces erreurs sont parties. Merci à tous pour votre aide.

Questions connexes