天天看點

讓kbmmw 4.8 支援ios 64

      随着xe8 的出來,其開始支援IOS 64 的編譯了(不支援也沒辦法,從今年2月開始不支援ios 64 的應用

就不允許入住apple appstore,霸氣呀)。相信不少同學迫不及待的開始了ios64 的開發。

   kbmmw 4.8 開始支援xe8,但是目前确無法直接編譯IOS64 的應用,經過分析其源碼,發現主要存在兩個

問題。

      一個問題是流的seek 方法,非ios64時可以 使用

  soFromBeginning = 0;

  soFromCurrent = 1;

  soFromEnd = 2;

來定位。例如 stream.Seek(0,sofromBeginning);

但是在IOS64 下,隻能用最新的

type

{ TStream seek origins }

  TSeekOrigin = (soBeginning, soCurrent, soEnd);

來定位流,例如 stream.Seek(0,soBeginning);

後面的方法在所有平台都是通用的,是以建議以後都使用這種方法。

另外一個問題就是在kbmmw 中大量使用了longint, 但是在ios 64 下,longint 已經變成了8個位元組大小,

如圖:

是以編譯時會出現大量的錯誤,為了适應這一變化,xe8 裡面引入了新的整數類型,fixedint, 這個實作了與作業系統的無關性,

無條件就是4個位元組大小,是以通過對kbmmw 中的大量longint 暫時使用fixedint 替換,基本上就解決了這個問題。

通過上面的修改,kbmmw 基本上就可以在ios64 上編譯運作了,由于不是官方修改,不完全保證沒問題。

繼續閱讀