2011-12-13 7 views
5

Tengo una aplicación que usa eventos táctiles para dibujar en la pantalla. Yo uso UITouch locationInView para devolver el CGPoint del tacto. El problema es que las coordenadas xey son siempre las mismas, PERO solo en los dispositivos de 2ª generación que ejecutan iOS 4.2.1 Y solo cuando mi aplicación está integrada en el modo de lanzamiento. Esto también parece ser un problema cuando se tocan directamente desde un objeto de evento touchesMoved o touchesEnded, ya que mis botones responden a toques correctamente.Impacto del uso de LLVM-GCC para resolver problemas en dispositivos de segunda generación con iOS 4.2.1

Gracias a un puesto en http://getmoai.com/forums/new-users/ios-touch-sensor-y-co-ordinate-always-the-same-as-x/ yo era capaz de solucionar el problema utilizando el compilador LLVM-CCG en lugar de la más reciente LLVM 3.0 compilador y utilizando el nivel de optimización 0.

Lo que es interesante es que el uso de la CCG el compilador corrigió las ubicaciones táctiles que recibí en touchesEnded mientras cambiaba el nivel de optimización a -O0 corrigió las ubicaciones táctiles que recibí en touchesMoved. No puedo explicar por qué sucede esto, pero por ahora estoy muy contento de que mi aplicación esté trabajando en estos dispositivos.

Mis preguntas son: ¿Cuáles son las desventajas de entregar mi aplicación a la tienda con el compilador anterior? (Entiendo el impacto del nivel de optimización.) ¿Y hay alguna forma de configurar el proyecto para que use el compilador anterior y el nivel de optimización más bajo solo para iOS 4.2.1 y/o dispositivos de segunda generación?

+0

mismo problema aquí, ¿ha encontrado algo todavía? –

Respuesta

0

Creo this stack overflow post explica perfectamente el problema y proporciona una solución mejor (que permite la configuración de mi proyecto para mantenerse al día con las recomendaciones).

+0

Creo que esto se ha solucionado en las iteraciones más recientes del compilador LLVM. Pruebe esto en Xcode 4.4 (4.5 soporta completamente ARMv6), y creo que podrá usar el compilador LLVM sin deshabilitar el conjunto de instrucciones Thumb. –

1

estoy usando este truco:

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

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