S'il vous plaît voir le commentaire:Syntaxe correcte pour accéder à un tableau d'objets de style c via la messagerie objective-c?
static void drawAnObject() {
Form *form = [[Form alloc] init];
int i;
[form randomizeCube];
glColor3f(0.0, 0.0, 0.0);
for(i = 0; i < MAX_CUBE; i++) {
glutWireCube(form->cube[i]->size);
//compiler issues hard warning because form->cube is protected!!
}
}
Je préfère utiliser l'accesseur j'ai placé sur le « Formulaire » classe pour que je puisse plutôt écrire quelque chose comme:
glutWireCube([[form cube][i] size]);
Mais j'obtenir un « ne peut convertir un type de pointeur "erreur lorsque je tente de compiler ceci.
Ceci est mon accesseur dans le "Form" classe: "cube"
@implementation Form
- (Cube *) cube {
return *cube;
}
La variable est définie dans le fichier d'en-tête classe "Formulaire" comme suit:
@interface Form : NSObject <NSCopying> {
Cube *cube[MAX_CUBE];
}
ci-dessous sont les variables de la classe "Cube" telles que définies dans son fichier d'en-tête:
@interface Cube : NSObject <NSCopying> {
double size;
double positionX;
double positionY;
double positionZ;
}
... et les accesseurs correspondants dans t il mise en œuvre fichier (.m):
- (double) size {
return size;
}
- (void) setSize: (double) newSize {
size = newSize;
}
- (double) positionX {
return positionX;
}
- (void) setPositionX: (double) newPositionX {
positionX = newPositionX;
}
- (double) positionY {
return positionY;
}
- (void) setPositionY: (double) newPositionY {
positionY = newPositionY;
}
- (double) positionZ {
return positionZ;
}
- (void) setPositionZ: (double) newPositionZ {
positionZ = newPositionZ;
}
Je voudrais éviter d'utiliser un NSMutableArray o NSArray comme je l'intention de porter cette partie du code de projet pour les plates-formes non-cacao plus tard.
J'ai passé les dernières heures à chercher la bonne façon de procéder. Y a-t-il une "bonne façon" de le faire en utilisant des tableaux C-Style et des accesseurs Objective-C?
Merci beaucoup pour votre réponse rapide. Je vais essayer cela et poster mes conclusions. – Rafael
Résolu et compris. Merci. – Rafael