Question

Je suis en train d'utiliser le code suivant pour vous déplacer dans les pages d'un PDF à l'aide webView.

 float Y = pdfNavigateController.webView.center.y + gY;
 [pdfNavigateController.webView.scrollView setContentOffset:CGPointMake(0,Y)];

La valeur gY est également un flotteur et est incrémenté que l'utilisateur sélectionne la page suivante. Le code jette actuellement une erreur « Opérande invalide à l'expression binaire ( » CGFloat »(alias « float ») et « float * »). Je devine que les opérandes ne sont pas valides que la valeur est un pointeur, mais je ne sais pas comment passer la valeur incrémentée sans obtenir cette erreur.

Était-ce utile?

La solution

Si gY est un pointeur (à un flotteur), vous devez déréférencer afin d'accéder à sa valeur:

float Y = pdfNavigateController.webView.center.y + *gY;

EDIT

Assurez-vous que vous avez un pointeur valide (à savoir, les points gy à un flotteur réel). Si c'est un pointeur initialisé non, il ne fonctionnera pas.

Pouvez-vous s'il vous plaît nous dire comment obtenez-vous gY?

EDIT 2

Je vous ai vu dit que gY est déclarée comme:

static float *gY = 0;

C'est un pointeur NULL.
Et vous ne pouvez pas déréférencer un pointeur NULL.

Lorsque vous incrémenter, vous incrémenter le pointeur (l'adresse de la mémoire), et non la valeur. Ainsi, votre pointeur en fait des points à ordures.

Pourquoi utilisez-vous un pointeur? Vous devez utiliser:

static float gY = 0;

Autres conseils

si gY est un pointeur sur une utilisation du flotteur *gY:

float Y = pdfNavigateController.webView.center.y + *gY;

Le rmessage d'erreur: ('CGFloat' (aka 'float') and 'float *') dit que CGFloat prévu un float mais a un pointeur float: float *

Pour le débogage d'abord briser l'opération vers le bas dans l'accès à la valeur pointée.

float gYValue = *gY;
float Y = pdfNavigateController.webView.center.y + gYValue;

Il est difficile de Dépanner depuis que vous avez posté très petite quantité de votre code. Cependant, j'ai une idée. Si le gx est un argument d'une méthode peut être la solution suivante:

Pour résoudre ce problème, ajoutez la déclaration de la méthode au fichier .h de votre classe. Espérons que cela aide -. Sinon s'il vous plaît poster un peu plus code

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top