Domanda

Sto cercando di utilizzare il seguente codice per spostarsi tra le pagine di un file PDF utilizzando WebView.

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

Il valore gY è anche un galleggiante e viene incrementato l'utente seleziona la pagina successiva. Il codice è attualmente gettando un errore 'operandi non validi espressione binario (' CGFloat'(alias 'float') e 'float *'). Sto indovinando gli operandi non sono validi come il valore è un puntatore, ma non so come passare il valore incrementato senza ottenere questo errore.

È stato utile?

Soluzione

Se gY è un puntatore (a un galleggiante), è necessario dereferenziarlo per l'accesso suo valore:

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

Modifica

Assicurati di aver ottenuto un puntatore valido (cioè, GY punta a un float reale). Se si tratta di un puntatore non inizializzato, non funzionerà.

Può dirci come si ottiene gY?

Modifica 2

Ho visto che hai detto che gY è dichiarato come:

static float *gY = 0;

Questo è un puntatore NULL.
E non si può dereference un puntatore NULL.

Quando si incrementarlo, si incrementa il puntatore (l'indirizzo di memoria), non il valore. Così il vostro puntatore in realtà punti a spazzatura.

Perché si utilizza un puntatore? Si consiglia di utilizzare:

static float gY = 0;

Altri suggerimenti

se gY è un puntatore ad un uso *gY float:

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

Il rmessage errore: ('CGFloat' (aka 'float') and 'float *') sta dicendo che si aspettava una CGFloat float ma ha ottenuto un puntatore float: float *

Per prima debug rompere l'operazione giù nella accedere al valore puntato.

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

E 'difficile per risolvere i problemi dal momento che hai postato molto piccola quantità di codice. Tuttavia Ho un'idea. Se il GX è un argomento di un metodo, la soluzione può essere seguente:

Al fine di risolvere questo problema, aggiungere la dichiarazione del metodo al file .h per la classe. Spero che questo aiuto sarà -. Se non si prega di inviare un po 'di codice

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top