Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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
Objective c 从long到int的转换给出了另一个数字?_Objective C_Xcode - Fatal编程技术网

Objective c 从long到int的转换给出了另一个数字?

Objective c 从long到int的转换给出了另一个数字?,objective-c,xcode,Objective C,Xcode,我的程序崩溃了,因为我试图进入包含76个索引为128的对象的数组。 崩溃后,我把鼠标放在一些变量上,看看它们在崩溃中的值是什么,我看到了一些奇怪的东西 if(cell.tag>-1 && cell.tag<[mainData count]) { [self loadMainImageToIndex:(int)cell.tag]; } 索引值为128 但是,如果它是128,这意味着这里的第一个条件不可能是真的,因为128高于76,因此,用128调用函数 也就是说,条

我的程序崩溃了,因为我试图进入包含76个索引为128的对象的数组。 崩溃后,我把鼠标放在一些变量上,看看它们在崩溃中的值是什么,我看到了一些奇怪的东西

if(cell.tag>-1 && cell.tag<[mainData count])
{
 [self loadMainImageToIndex:(int)cell.tag];
}
索引值为128

但是,如果它是128,这意味着这里的第一个条件不可能是真的,因为128高于76,因此,用128调用函数

也就是说,条件中的cell.tag低于76,intcell.tag为128。。
??

崩溃后,所有赌注都被取消:堆栈处于错误状态,因此调试器将显示垃圾邮件。你需要在崩溃前在调试器中捕获它。实际上,我可以打开数组并查看正确的值。NSArray不同,它的数据在堆区域,通常在崩溃后不会出错,至少它不是保证的擦除,就像堆栈一样。好的,谢谢,很高兴知道这一点,因此,如果它可能没有出错,如何获取此值?要捕获该值,请在loadMainImageToIndex中设置断点:。然而,可能会有太多的点击,所以更简单的方法是让自己确信你的问题在别处。在if:int tmp=intcell.tag内添加这些行;NSAsserttmp>=0&&tmp<[maindatacount],@索引超出范围;然后再次运行您的程序。如果该断言被触发,则您抓住了罪犯;如果没有触发断言,那么代码的这一部分就可以了,这是另外一部分。
-(void)loadMainImageToIndex:(int)index