要從二進位檔案中讀入數值,其中一個會遇到的問題就是 Little-endian 和 Big-endian,這和 CPU 的種類有關。Intel 系列的 x86 CPU 使用的是 Little-endian,而 PowerPC、ARM 等的 CPU 則是採用 Big-endian。endian 不同的問題,在以前 PPC 的時代算是相當重要,後來改用 Intel CPU 之後重要性就下降了許多,不過現在因為 iPhone 採用的 ARM 又是 Big-endian,所以這問題的重要性又大幅提升了,尤其許多新手設計師,之前可能根本沒碰過非 Intel 的平台,根本沒考慮過這問題,於是寫出來的程式就會讀到一堆詭異的數字。
NSNumber 與 NSInteger
在 Mac OSX 10.5 中新增加了 NSInteger 這個東西,但是這下就會跟 NSNumber 搞混,到底要用哪個?
基本上,NSInteger(以及類似的 NSUInteger)是為了解決在 32-bit/64-bit CPU 架構下,int 長度不同的問題,它的定義如下:
iPhone Simulator 在 PPC 平台上執行 OpenGL ES 的顏色怪異問題
為何要支援 Mac 與 Linux?
今天看到一篇標題為 Why you should support Mac OS X and Linux?,真是一語道盡我對支援 Mac OS X 與 Linux 的看法,這些看法我之前也跟一些業主談過,但是卻沒有業主聽得進去,但是以後我就有 case 可以 support 我的看法了。
在 PowerPC 的 Mac 上安裝 iPhone SDK [續]
如果有朋友照著前一篇文章在 PPC 的機器上安裝 iPhone SDK 的話,應該會跟我遇到一樣的問題,那就是無法編譯 Project…
其實嚴格講起來也不是不能編譯,只是 Active SDK 沒辦法選用 Simulator,會得到 “No architectures to compile for (ARCHS=ppc, VALID_ARCHS=i386).” 的錯誤訊息。不過選用 Device 則可以正常編譯。不過這樣開發過程就會變得很麻煩,而且 Simulator 就完全沒用了。而且既然 Simulator 是 Universal 的程式,這應該是單純修改設定就可以解決的問題才是。
在 PowerPC 的 Mac 上安裝 iPhone SDK
Xcode 與 C99 標準
寫程式時,迴圈是個避免不了的東西,而幾乎每個迴圈都會有個 counter。在大部分的情況下,這個 counter 是用過即丟的,因此我們常常會寫如下的 code:
for(int i=0; i<something; i++) {
some code here…
}
iPhone/iPod Touch 更新/降級系統相關的問題與解法
最近幫人破解 iPod Touch,結果要從 1.1.3 降級回 1.1.1 的時候遇到了許多問題,iTunes 一直跳出視窗說回復失敗,發生了未知的錯誤等等,google 了一下找到了這些錯誤代碼的意義和解法,整理如下:
iPhone SDK 可能要延遲了!
不知道有多少朋友跟我一樣,最近一直盯著 Apple 主站和 ADC 的 iPhone Dev Center,等待著 Jobs 之前說會在二月發表的 iPhone SDK。
不過壞消息來了…根據 BusinessWeek 的報導,iPhone SDK 可能要延遲一到三週才會發表。