2011-12-13 56 views
5

我有一个使用触摸事件在屏幕上绘制的应用程序。我使用UITouch locationInView返回触摸的CGPoint。问题是x和y坐标总是相同的 - 但只在运行iOS 4.2.1的第二代设备上,并且只有当我的应用程序构建在发布模式下。当直接从touchesMovedtouchesEnded事件对象触摸时,这也只是一个问题,因为我的按钮正确响应触摸。使用LLVM-GCC解决运行iOS 4.2的第二代设备上的问题的影响

感谢后在http://getmoai.com/forums/new-users/ios-touch-sensor-y-co-ordinate-always-the-same-as-x/我能够使用LLVM-GCC编译器,而不是较新的LLVM编译器3.0,并使用优化级来解决这个问题0

有趣的是,使用GCC编译器将我在touchesEnded中收到的触摸位置进行了更正,同时将优化级别更改为-O0,更正了我在touchesMoved中收到的触摸位置。我无法解释这是为什么,但现在我欣喜若狂,我的应用正在使用这些设备。

然后,我的问题是 - 使用旧的编译器将应用程序交付给商店有什么缺点? (我理解优化级别的影响)。是否有任何方法来配置项目,以便我只使用较旧的编译器和较低的优化级别仅适用于iOS 4.2.1和/或第二代设备?

+0

同样的问题在这里,你有没有发现什么? – 2011-12-28 22:04:23

回答

0

我相信this stack overflow post完全说明问题,并提供了一个更好的解决方案(一个能够让我的项目设置,以留在建议电流)。

+0

我相信这已经在LLVM编译器的更新版本中得到修复。在Xcode 4.4中尝试这一点(完全支持ARMv6的4.5滴),我相信你可以在不禁用Thumb指令集的情况下使用LLVM编译器。 – 2012-09-21 00:52:17

1

我使用这个技巧:

// not working (location.x == location.y) 
CGPoint location = [touch locationInView:_myView]; 
// 

// working! 
static CGPoint location; 
location = [touch locationInView:_myView]; 
//