2011-12-13 4 views
5

タッチイベントを使用して画面に描画するアプリケーションがあります。私はUITouch locationInViewを使ってタッチのCGPointを返します。問題は、x座標とy座標は常に同じですが、iOS 4.2.1を実行している第2世代のデバイスでのみ、アプリがリリースモードで構築されている場合のみです。私のボタンがタッチに正しく反応するので、これはまた、touchesMovedまたはtouchesEndedイベントオブジェクトから直接触れるときに問題があるように見えます。 http://getmoai.com/forums/new-users/ios-touch-sensor-y-co-ordinate-always-the-same-as-x/でポストへiOS 4.2.1を実行している第2世代デバイスの問題を解決するためにLLVM-GCCを使用することの影響

おかげで、私はむしろ、新しいLLVM 3.0のコンパイラよりもLLVM-GCCコンパイラを使用することにより、最適化レベルを使用して問題を解決することができました0面白いです何

は、GCCを使用していることです私が受け取ったタッチ位置をコンパイラがtouchesEndedに修正し、最適化レベルを-O0に変更して、受け取ったタッチ位置をtouchesMovedに修正しました。なぜこれがどういうものなのか説明できませんが、今は私のアプリがこれらのデバイスで動いていることを歓迎しています。

私の質問は次のとおりです。 - 古いコンパイラを使用して店舗にアプリケーションを提供する際の短所は何ですか? (私は最適化レベルの影響を理解しています。)また、古いコンパイラを使用し、iOS 4.2.1および/または第2世代デバイスのみの最適化レベルを下げるようにプロジェクトを設定する方法はありますか?

+0

ここで同じ問題が見つかりましたか? –

答えて

0

私はthis stack overflow postは完全に問題を説明し、よりよい解決策(私のプロジェクトの設定が推奨と現在の滞在することができます1)を提供し信じています。

+0

これはLLVMコンパイラの最近の反復で修正されていると思います。これをXcode 4.4で試してみてください(ARMv6は4.5滴が完全にサポートされています)。Thumb命令セットを無効にしないと、LLVMコンパイラを使用できるようになります。 –

1

私はこのハックを使用しています:

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

// working! 
static CGPoint location; 
location = [touch locationInView:_myView]; 
// 
関連する問題