Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone 4和5上64位整数的位板位操作?_Iphone_Objective C_Ios7_64 Bit_Bitboard - Fatal编程技术网

iPhone 4和5上64位整数的位板位操作?

iPhone 4和5上64位整数的位板位操作?,iphone,objective-c,ios7,64-bit,bitboard,Iphone,Objective C,Ios7,64 Bit,Bitboard,我有一个相当有趣的问题。我正在为iOS 7编写一个棋盘游戏引擎,我想在iPhone4、4s、5和5s上使用它。到目前为止,我一直在iOS 64位iPhone模拟器中进行所有测试,但我决定在手机上运行它,所有的黑色棋子都不见了。我很快发现这是因为我的iPhone是iPhone5,我认为它在64位数字的按位操作方面存在一些问题。有什么变通方法可以让这个应用程序在iPhone4、4s和5上运行吗?还是我必须只制作这款iPhone 5s?如果是这样的话,那将是相当令人沮丧的 更新:经过进一步调查,我确定

我有一个相当有趣的问题。我正在为iOS 7编写一个棋盘游戏引擎,我想在iPhone4、4s、5和5s上使用它。到目前为止,我一直在iOS 64位iPhone模拟器中进行所有测试,但我决定在手机上运行它,所有的黑色棋子都不见了。我很快发现这是因为我的iPhone是iPhone5,我认为它在64位数字的按位操作方面存在一些问题。有什么变通方法可以让这个应用程序在iPhone4、4s和5上运行吗?还是我必须只制作这款iPhone 5s?如果是这样的话,那将是相当令人沮丧的


更新:经过进一步调查,我确定问题在于,虽然我所有显式声明的类型都是无符号长整数,因为我将它们的集合作为对象文本存储在NSArray中,但当我在调用objectForKey后调用integerValue时,这将返回一个NSInteger。然而,在32位手机上,当我需要64位时,NSInteger是32位的。有没有办法在NSArray中存储和从NSArray中检索64位整数?

好的,我终于弄明白了到底发生了什么。我一直在NSArray中将比特板集合存储为NSNumber,并使用integerValue将其取出。这在64位设备上运行良好,因为integerValue返回一个nsinteger,它是基于处理器的32位或64位整数。一旦我将所有函数调用更改为unsignedLongLongValue,它就发挥了巨大的作用。

显示一些代码,特别是在定义存储位的方式时。@Arkku-我将它们存储为u_int_64(unsigned long int typedef as Bitboard)作为非原子属性。我现在正在工作,但今晚回家后会发布一些代码。