Проблемы при назначении увеличенных значений cgpointmake

StackOverflow https://stackoverflow.com/questions/8325811

Вопрос

Я пытаюсь использовать следующий код для прохождения страниц PDF с помощью WebView.

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

Значение GY также является поплавкой и увеличивается, поскольку пользователь выбирает следующую страницу. Код в настоящее время бросает ошибку «недействительные операнды в двоичное выражение (« cgfloat »(он же« float ») и« float *»). Я предполагаю, что операнды недействительны, так как значение является указателем, но я не знаю, как передать увеличенное значение без получения этой ошибки.

Это было полезно?

Решение

Если GY является указателем (на поплавок), вам необходимо обойти его, чтобы получить доступ к его значению:

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

РЕДАКТИРОВАТЬ

Убедитесь, что у вас есть действительный указатель (т.е. GY указывает на фактический поплавок). Если это не инициализированный указатель, это не сработает.

Не могли бы вы сказать нам, как вы получите gY?

Редактировать 2

Я видел, как вы сказали, что GY объявляется:

static float *gY = 0;

Это нулевой указатель.
И вы не можете определить нулевый указатель.

Когда вы увеличиваете его, вы увеличиваете указатель (адрес памяти), а не значение. Так что ваш указатель на самом деле указывает на мусор.

Почему вы используете указатель? Вы должны использовать:

static float gY = 0;

Другие советы

если gY это указатель на использование поплавка *gY:

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

Ошибка rmessage: ('CGFloat' (aka 'float') and 'float *')говорит это CGFloat ожидается а float Но получил поплавок: float *

Для отладки сначала разбивайте операцию в доступе к значению, указанному.

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

Трудно устранить устранение неполадок, так как вы опубликовали очень небольшое количество своего кода. Однако у меня есть идея. Если GX является аргументом метода, решение может быть следующим:

Чтобы решить эту проблему, добавьте объявление метода в файл .h для вашего класса. Надеюсь, это поможет - если не, пожалуйста, опубликуйте еще код.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top