我有一个相当有趣的问题。我正在使用 iOS 7 的位板编写一个国际象棋引擎,我想在 iPhone 4、4s、5 和 5s 上工作。到目前为止,我一直在 iOS 64 位 iPhone 模拟器中进行所有测试,但我决定在手机上运行它,所有的黑棋子都不见了。我很快发现这是因为我的 iPhone 是 iPhone 5,我认为它在 64 位数字上的按位运算存在一些问题。有什么解决方法可以让这个应用程序在 iPhone 4、4s 和 5 上运行吗?还是我必须只制作这款 iPhone 5s?如果是这样的话,那将是相当令人沮丧的。
更新:经过进一步调查,我确定问题在于,虽然我所有明确声明的类型都是无符号长整型,但因为我将它们的集合作为对象文字存储在 nsarrays 中,当我在调用 objectForKey 后调用 integerValue 时,这会返回一个NS 整数。但是,在 32 位手机上,当我需要 64 位时,NSInteger 是 32 位。有没有办法在 NSArray 中存储和检索 64 位整数?