1

ipod touch 2GでCGrectsを再利用すると奇妙な動作をしますが、3G4Gではそうではありません。デバイスを接続した状態でXCode4からアプリを実行すると、問題なく動作しますが、アプリをアーカイブしてiTunesまたはWebサーバー経由でアップロードすると、奇妙な動作が発生します。スキームの編集に移動し、[アーカイブ]を選択して、[構成のビルド:デバッグ]を選択し、Webサーバーを介してアプリをアップロードすると、正常に機能します。

私のコードはこんな感じです

//this code works perfect
CGRect pos = self.toolBar.frame;
pos.origin.y = 0;
self.toolBar.frame = pos;

//this code fails, to fix it I need to create a new CGRect (CGRect pos2)
//or assign an CGRectMake to pos
pos = self.picker.frame;
pos.origin.y = self.toolBar.frame.size.height;
self.picker.frame = pos;

この問題の原因は何ですか。これらのビルド構成を比較するにはどうすればよいですか(デバッグ-リリース)

編集済み

4

1 に答える 1

0

XCodeとアーカイブからの実行の主な違いは、DEBUGビルドとRELEASEビルド、特にリリースビルドで有効になっているコンパイラの最適化です。

armv6プロセッサに関連するLLVMコンパイラ最適化のバグが発生している可能性がありますが、非常によく似たことが起こりました。LLVMからGCCコンパイラに切り替えてみてください。これで問題は解決しますか?

さらに、XCode 4.5にアップグレードすると、ARMV6が非推奨になっていることがわかります。そのため、これらの古いデバイスのサポートを終了して、Appleとのロックステップを選択することもできます。

于 2012-09-20T18:07:09.697 に答える