我在 iPhon 应用程序中遇到无穷大问题。问题很奇怪。我需要使用以下公式计算缩放限制。
zoomLimit = 1/(mapState.iBufferMult*0.75);
mapState.iBufferMult 的值 = 3
问题是大多数类型的公式给出了正确的值 0.44。但有时它会给出无穷大。
谁能告诉我为什么会这样。
因为mapState.iBufferMult
在表达式为 INFINITY 的情况下为 0。您的程序中的某些内容将其设置为 0。记录它和除法的结果并每次检查。
因为有时mapState.iBufferMult
== 0
。
检查你没有悬空指针。
谁能告诉我为什么会这样。
是的,我可以:什么时候mapState.iBufferMult
是0
(零)然后:
zoomLimit = 1/(mapState.iBufferMult*0.75)
= 1/(0*0.75)
= 1/0
= INFINITY
解决mapState.iBufferMult
问题,你就解决了这个问题。
因为有些时候,mapState
是 nil 或者mapState.iBufferMult
是 0。
或者问题出在这条线之外。
也许在那里设置一个断点并在 zoomLimit 为 INFINITY 时停止。