将递增值分配给CGPointMake的问题

时间:2011-11-30 12:16:43

标签: iphone xcode uiwebview cgfloat

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

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

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

3 个答案:

答案 0 :(得分:1)

如果gY是指向浮动使用*gY的指针:

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

错误消息:('CGFloat' (aka 'float') and 'float *') 是说CGFloat期望float但是有一个浮动指针:float *

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

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

答案 1 :(得分:0)

如果gY是指针(浮点数),则需要取消引用它才能访问其值:

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

修改

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

您能否告诉我们您如何获得gY

编辑2

我见过你说过gY被宣布为:

static float *gY = 0;

这是一个NULL指针。
你不能取消引用NULL指针。

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

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

static float gY = 0;

答案 2 :(得分:0)

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

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