1

我正在尝试使用以下代码使用 webView 在 Pdf 页面中移动。

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

gY 的值也是一个浮点数,并随着用户选择下一页而递增。该代码当前抛出错误“二进制表达式的无效操作数('CGFloat'(又名'float')和'float *')。我猜操作数是无效的,因为该值是一个指针,但我不知道如何在不出现此错误的情况下传递递增的值。

4

3 回答 3

1

ifgY是一个指向浮点数的指针*gY

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

错误 rmessage:('CGFloat' (aka 'float') and 'float *') 是说CGFloat期望 afloat但得到了一个浮点指针:float *

对于调试,首先将操作分解为访问指向的值。

float gYValue = *gY;
float Y = pdfNavigateController.webView.center.y + gYValue;
于 2011-11-30T12:28:38.520 回答
0

如果 gY 是一个指针(指向一个浮点数),您需要取消引用它才能访问它的值:

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

编辑

确保你有一个有效的指针(即 gY 指向一个实际的浮点数)。如果它是一个未初始化的指针,它将不起作用。

你能告诉我们你是怎么得到的gY吗?

编辑 2

我看到你说 gY 被声明为:

static float *gY = 0;

那是一个空指针。
而且您不能取消引用 NULL 指针。

当你增加它时,你增加的是指针(内存地址),而不是值。所以你的指针实际上指向垃圾。

为什么要使用指针?你应该使用:

static float gY = 0;
于 2011-11-30T12:29:17.053 回答
0

由于您发布了非常少量的代码,因此很难进行故障排除。不过我有个主意。如果 gX 是方法的参数,则解决方案可能如下:

为了解决此问题,请将方法的声明添加到您的类的 .h 文件中。希望这会有所帮助 - 如果没有,请发布更多代码。

于 2011-11-30T12:31:18.937 回答