最近我已将我的应用程序转换为64位,并且已经开始在崩溃报告中看到以下消息发生的崩溃:
-[__NSArrayI objectAtIndex:]: index 18446744073709551615 beyond bounds [0 .. 0]'
崩溃报告指向下面的代码片段,但是当我在调试中运行它时,它不会让我崩溃。有人遇到过类似的问题吗?
NSArray *allViewControllers = self.firstModalViewController.viewControllers;
UIViewController *aViewController = allViewControllers[allViewControllers.count - 2];
答案 0 :(得分:0)
objectAtIndex:方法采用NSUInteger。如文档中所指定的,在64位应用程序中有64位无符号整数。
构建32位应用程序时,NSUInteger是一个32位无符号整数。 64位应用程序将NSUInteger视为64位无符号整数
您正尝试访问索引(64 ^ 2)-2
老实说,阅读提供的代码,我不能说这是一个64位相关的问题。看来你正在访问那个数组之前它已经充满了东西。
您是否尝试使用调试器打印数组?