应用程序崩溃在64位

时间:2014-08-08 22:10:51

标签: ios objective-c cocoa-touch uiviewcontroller 64-bit

最近我已将我的应用程序转换为64位,并且已经开始在崩溃报告中看到以下消息发生的崩溃:

-[__NSArrayI objectAtIndex:]: index 18446744073709551615 beyond bounds [0 .. 0]'

崩溃报告指向下面的代码片段,但是当我在调试中运行它时,它不会让我崩溃。有人遇到过类似的问题吗?

NSArray *allViewControllers = self.firstModalViewController.viewControllers;
UIViewController *aViewController = allViewControllers[allViewControllers.count - 2];

1 个答案:

答案 0 :(得分:0)

objectAtIndex:方法采用NSUInteger。如文档中所指定的,在64位应用程序中有64位无符号整数。

  

构建32位应用程序时,NSUInteger是一个32位无符号整数。 64位应用程序将NSUInteger视为64位无符号整数

您正尝试访问索引(64 ^ 2)-2

老实说,阅读提供的代码,我不能说这是一个64位相关的问题。看来你正在访问那个数组之前它已经充满了东西。

您是否尝试使用调试器打印数组?