5

我有一个使用触摸事件在屏幕上绘图的应用程序。我用UITouch locationInView返回CGPoint的触摸。问题是 x 和 y 坐标总是相同的——但仅在运行 iOS 4.2.1 的第二代设备上并且仅当我的应用程序以发布模式构建时。这似乎也只是直接从一个touchesMovedtouchesEnded事件对象进行触摸时出现的问题,因为我的按钮正确地响应了触摸。

感谢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 和/或第二代设备使用较旧的编译器和较低的优化级别?

4

1 回答 1

1

我正在使用这个黑客:

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

// working!
static CGPoint location;
location = [touch locationInView:_myView];
//
于 2012-03-10T22:40:33.877 回答