Влияние использования LLVM-GCC для решения проблем на устройстве 2-го поколения под управлением iOS 4.2.1 - PullRequest
5 голосов
/ 14 декабря 2011

У меня есть приложение, которое использует сенсорные события для рисования на экране. Я использую UITouch locationInView, чтобы вернуть CGPoint касания. Проблема в том, что координаты x и y всегда одинаковы - НО только на устройствах 2-го поколения под управлением iOS 4.2.1 И только тогда, когда мое приложение построено в режиме выпуска. Это также кажется проблемой только при касании непосредственно от объекта события touchesMoved или touchesEnded, поскольку мои кнопки реагируют на прикосновения правильно.

Благодаря сообщению на 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 и / или 2-го поколения?

Ответы [ 2 ]

1 голос
/ 11 марта 2012

Я использую этот хак:

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

// working!
static CGPoint location;
location = [touch locationInView:_myView];
//
0 голосов
/ 21 сентября 2012

Я полагаю этот пост переполнения стека прекрасно объясняет проблему и обеспечивает лучшее решение (такое, которое позволяет моим настройкам проекта соответствовать текущим рекомендациям).

...