我正在尝试使用以下代码使用webView移动Pdf的页面。
float Y = pdfNavigateController.webView.center.y + gY;
[pdfNavigateController.webView.scrollView setContentOffset:CGPointMake(0,Y)];
值gY也是一个浮点数,并在用户选择下一页时递增。代码当前抛出错误'无效操作数到二进制表达式('CGFloat'(又名'浮动')和'浮动*')。我猜测操作数无效,因为值是一个指针,但我不知道如何传递递增的值而不会出现此错误。
答案 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文件中。希望这会有所帮助 - 如果没有,请发布更多代码。