私のiPhoneアプリケーションのビルドの1つでは、誤って変数を作成して、上のスコープ内の変数をシャドウしました。これは意図的ではありませんでしたが、Objective-Cはifブロックとその包含メソッドの間で変数のシャドーイングを可能にするので、コンパイルされました。iPhone 2Gと3G間のメモリ割り当て
このコードを送信したとき、すぐにiPhone 3Gsを使用していた人は問題に遭遇しましたが、2Gを使用している人は明らかな問題はありませんでした。
これらの2つのモデルに実際のOSの違いがあるかどうかは知りませんか? 2Gはコンパイル時に静的なメモリ割り当てを何とかしていますか?
私は2G開発デバイスしか持っていなかったので、理論的にはコードは期待通りに機能してはいけませんが、問題が発生したことはありませんでした。
ここで、3GはAdHocビルドをターゲットにしているビルドを使用していたのに対して、2Gが使用していたビルドはリリース対象でした。
よろしくお願いいたします。私はOS自体が同じであることを認識していますが、これは基礎となるメモリアーキテクチャがまったく同じことを意味するわけではありません。問題はシャドウイングの場合の変なイベント(私が知っている悪い習慣で、リリースまで捕まえられなかったバグだったからです)。私はシャドウイングや何かを探すためにスタティックアナライザーを変更する必要があるのかと疑問に思っています... – Sam
アップルが知っていることが許される違いはありません。私は、アプリケーションレベルの処理システムは、2つのモデル間で全く同じだと考えています。違いはビルド設定であるか、異なるOSバージョンを実行していた場合でなければなりません。 – AriX
(または単に偶然) – AriX