2009-05-28 17 views
0

在我的一個iPhone應用程序版本中,我無意中創建了一個變量,在上面的範圍中映射了一個變量。這是無意的,但是由於Objective-C顯然允許在if塊及其包含方法之間隱藏變量,因此編譯它。iPhone 2G和3G之間的內存分配

當我發出這段代碼時,使用iPhone 3G的人立即遇到了問題,但使用2G的人沒有任何明顯的問題。

有沒有人碰巧知道這兩個模型是否存在實際的操作系統差異? 2G有編譯時間,靜態內存分配,不知何故?

這是一個巨大的混亂點,因爲我只有一個2G開發設備,並且從來沒遇到過問題,即使理論上代碼不應該按預期工作。

現在,還有一些其他的區別在於,3G使用的是構建AdHoc構建版本,而2G使用的版本是針對版本的。

回答

1

應該沒有什麼區別,它們使用相同的處理器,我相信相同的RAM。他們幾乎是同一個平臺。操作系統是字面上相同的 - 如果你強制它,一個iPhone 3G IPSW可以恢復到2G(反之亦然),它會很好地工作(請注意,如果你解壓IPSW,看看裏面的iPhone建立它包含NOR文件兩個平臺)。

這可能是巧合,因爲你的用戶可能有不同版本的操作系統,或者它可能是你的專用版本和你的版本之間的差異。

+0

嗯,謝謝。我意識到操作系統本身是相同的,但這並不意味着底層內存架構完全一樣。這個問題是因爲在Shadowing的情況下發生了一個奇怪的事件(我知道這是一個錯誤,直到發佈才被捕獲)。我想知道如果我應該修改一個靜態分析器來尋找陰影或其他東西... – Sam 2009-06-10 17:49:48