2009-04-03 5 views
0

Il y a une blague là quelque part.Qu'est-ce qui se passe à la valeur de mon membre?

Anyhoot. Dans le code suivant, la méthode setForceVector n'a aucun effet sur la valeur du membre qu'il tente de modifier. En vérifiant le journal, je peux voir que la fonction est appelée (par un autre objet manipulant un touchEvent). J'ai utilisé NSLog pour vérifier que le forceVectorfromControls rencontre réellement comme prévu et il est.

Si je mets la valeur de forceVector dans les init de ou étape méthodes, il fonctionne comme prévu. Mais pour une raison quelconque, il ne fait rien dans la méthode setForceVector.

cpVect est une structure C, est-ce que cela a quelque chose à voir avec ça?

http://pastebin.com/m78f3d63e

Je suis perplexe.

+0

Ne pas synthétiser forceVector * et * créer un accesseur pour cela. –

+0

Drat. Où est mon bouton +1 pour les commentaires? :-) –

+0

uservoice? LOL :) –

Répondre

1

Cela sent très fortement d'avoir deux objets différents sans s'en rendre compte. Essayez de vous connecter dans les méthodes et voir si c'est le même GameLayer qui fait tout cela.

+0

J'ai tellement honte. – gargantuan

0

Le cpVect ne doit-il pas être un pointeur (ligne 10)?

+0

apparemment pas, cela jette une erreur. On me dit que c'est un C Struct. – gargantuan

+0

Il n'y a aucune raison pour que ce soit un pointeur. – Chuck

0

@synthesize va essayer de produire une autre méthode d'accès, même si je ne suis pas sûr de ce qui se passe quand les deux conflits. Avez-vous essayé de ne pas synthétiser le setter? Sinon, pourriez-vous définir un point de contrôle sur la variable et voir ce qui change pour vous?

+0

désolé, oui, je l'avais déjà commenté. Je ne sais pas comment il est entré dans le code pastebin. Va le sortir maintenant. Et ça ne marche toujours pas. Lorsque j'appelle la méthode setForceVector et que je consigne la valeur de forceVector, j'obtiens ce que je recherche. Mais quand j'enregistre la valeur à l'intérieur de l'étape, c'est aussi {0} – gargantuan

+0

, selon cocoadevcentral, dans le tutoriel Learn Objective C, il est OK d'utiliser @sysnthesize et de déclarer aussi votre propre méthode. Apparemment, @synthesize ne crée que des accesseurs s'il n'y a pas de disponible. – gargantuan

Questions connexes