将增量值分配给cgpointmake的问题
题
我正在尝试使用以下代码使用WebView浏览PDF的页面。
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文件中。希望这会有所帮助 - 如果没有,请发布更多代码。
不隶属于 StackOverflow