Cla*_*fou 12 iphone llvm coordinates cgpoint xcode4.2
注意:这是我已经找到答案的问题.似乎鼓励在找到有趣的答案后发布问题,所以我发布了这个.其他人可能会遇到同样的问题并发现它很有用.
我有一个生成图表的iOS应用程序.发布更新后不久,用户向我发送了这封恐慌的电子邮件:
"最新的更新修改了曲线...没有看到更多的增长曲线和插入的数据表示为一条线下降...之前你看得很清楚
帮我"
我让他发送截图并提供更多细节.他有iPhone 3G,这就是女孩的图表.大多数点都是在错误的坐标处绘制的:它们似乎是以(x,x)而不是(x,y)绘制的.

比较它的外观(忽略颜色的差异 - 粉色是女孩,蓝色是男孩):

经过多次实验,我给他发了一个以前版本的重建版本(对他来说工作正常)但它仍然不起作用.所以最终看来更新中的代码更改与它无关.可能是什么解释?
Cla*_*fou 10
iPhone原装和iPhone 3G使用armv6架构,后来型号为armv7.回答这个堆栈溢出问题,以及苹果开发者论坛帖子指向一个问题通过的XCode 4.2的编译器,造成某些数据结构算术运算产生的ARMv6的Thumb代码,特别是CGPoint,返回完全错误的结果.例如将x值写入y值.
解决方案是将-mno-thumb编译器选项添加到XCode项目中.这告诉编译器不要发出Thumb模式代码,从而绕过了bug.另一个解决方案是切换回早期的XCode(iOS5之前的SDK),它没有这个bug.
所以bug就在编译器中!多么酷啊?:)在二十年的发展过程中,我还没有遇到过这样的事情.
这是一个截图,显示如果它可以帮助任何人,在哪里添加此编译器选项:

| 归档时间: |
|
| 查看次数: |
986 次 |
| 最近记录: |