我有一個相當有趣的問題。我正在寫一個使用iOS 7的位板的國際象棋引擎,我想在iPhone 4,4s,5和5s上工作。到目前爲止,我在iOS 64位iPhone模擬器上做了所有測試,但我決定在我的手機上運行它,並且所有黑色棋子都丟失了。我很快發現,這是因爲我的iPhone是iPhone 5,我認爲它在64位數字上進行按位運算時存在一些問題。是否有任何解決方法可用於讓此應用在iPhone 4,4s和5上工作?或者我必須製作這款iPhone 5s專用的?如果是這樣的話,那將是相當令人沮喪的。iPhone 4和5上的64位整數的位板按位操作?
更新:經過進一步調查後,我確定問題在於,雖然我所有明確聲明的類型都是無符號long long整數,因爲我將它們的集合作爲對象文字存儲在nsarrays中,當我在調用objectForKey之後調用integerValue ,這將返回一個NSInteger。但是,在32位手機上,當我需要64位時,NSInteger是32位。有沒有辦法在NSArray中存儲和檢索64位整數?
顯示一些代碼,尤其是定義存儲位的方式。 – Arkku
@Arkku - 我將它們存儲爲u_int_64(unsigned long long int typdef作爲Bitboard)作爲非原子性質。我現在在工作,但是當我今晚回到家時會發布一些代碼。 – AttilaTheFun