Frage

Ich versuche, den folgenden Code zu verwenden, um mit WebView die Seiten eines PDF zu bewegen.

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

Der Wert GY ist auch ein Float und wird erhöht, wenn der Benutzer die nächste Seite auswählt. Der Code wirft derzeit einen Fehler 'ungültige Operanden in den binären Ausdruck (' CGFloat '(auch bekannt als' Float ') und' Float *'). Ich vermute, die Operanden sind ungültig, da der Wert ein Zeiger ist, aber ich weiß nicht, wie man den inkrementierten Wert übergeben, ohne diesen Fehler zu erhalten.

War es hilfreich?

Lösung

Wenn Gy ein Zeiger ist (auf einen Schwimmer), müssen Sie ihn Dereference, um auf seinen Wert zuzugreifen:

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

BEARBEITEN

Stellen Sie sicher, dass Sie einen gültigen Zeiger haben (dh Gy zeigt auf einen tatsächlichen Schwimmer). Wenn es sich um einen uneinheitlichen Zeiger handelt, funktioniert er nicht.

Können Sie uns bitte sagen, wie Sie bekommen? gY?

Bearbeiten 2

Ich habe gesehen, dass du gesagt hast, dass Gy als erklärt wird:

static float *gY = 0;

Das ist ein Nullzeiger.
Und Sie können keinen Nullzeiger Dereference.

Wenn Sie es inkrementieren, erhöhen Sie den Zeiger (die Speicheradresse), nicht den Wert. Ihr Zeiger zeigt also tatsächlich auf Müll.

Warum benutzt du einen Zeiger? Du solltest benutzen:

static float gY = 0;

Andere Tipps

wenn gY ist ein Zeiger auf einen Schwimmergebrauch *gY:

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

Der Fehler rmessage: ('CGFloat' (aka 'float') and 'float *')sagt das CGFloat erwartet a float aber einen Float -Zeiger: float *

Zum Debuggen wird der Vorgang zum ersten Mal in den Zugriff auf den Wert aufgeteilt, auf den ergeben wird.

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

Es ist schwer zu beheben, da Sie eine sehr kleine Menge Ihres Codes gepostet haben. Ich habe jedoch eine Idee. Wenn der GX ein Argument einer Methode ist, kann die Lösung folgen:

Um dieses Problem zu beheben, fügen Sie die Erklärung der Methode der .H -Datei für Ihre Klasse hinzu. Ich hoffe, das hilft - wenn nicht, posten Sie bitte mehr Code.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top