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
Xcode NSMutableArray具有错误空数组_Xcode_Json_Uitableview_Nsmutablearray - Fatal编程技术网

Xcode NSMutableArray具有错误空数组

Xcode NSMutableArray具有错误空数组,xcode,json,uitableview,nsmutablearray,Xcode,Json,Uitableview,Nsmutablearray,我对NSMutablearray和JSON解析有一些问题。 那我在干什么?从JSON进行解析并发送到我的TableViewCell。 我有我的密码: h: m: 所有的工作都很好,但5或3分钟后,我有错误,我的应用程序崩溃 错误: 2013-06-21 12:32:41.502 Europaplusa[651:707]*由于未捕获的异常“NSRangeException”而终止应用程序,原因:“*-[\uu NSArrayM objectAtIndex::]:索引0超出空数组的界限” *第一次抛

我对NSMutablearray和JSON解析有一些问题。 那我在干什么?从JSON进行解析并发送到我的TableViewCell。 我有我的密码:

h:

m:

所有的工作都很好,但5或3分钟后,我有错误,我的应用程序崩溃

错误:

2013-06-21 12:32:41.502 Europaplusa[651:707]*由于未捕获的异常“NSRangeException”而终止应用程序,原因:“*-[\uu NSArrayM objectAtIndex::]:索引0超出空数组的界限” *第一次抛出调用堆栈: (0x353f188f 0x37798259 0x3533a9db 0xfa9d5 0x32e85efb 0x32e84fd9 0x32e84763 0x32e28f37 0x353501fb 0x32220aa5 0x322206bd 0x32224843 0x3222457f 0x3221c4b9 0x353c5b1b 0x353c3d57 0x353c40b1 0x353474a5 0x3534736d 0x36fe3439 0x32e53cd5 0xf8843 0xf87d0) 终止引发异常的调用


这是什么?请帮忙。

我认为唯一的objectAtIndex在这里

cell.detailTextLabel.text = [array objectAtIndex:indexPath.row];
似乎数组已被plistget清空

[array removeAllObjects];

您的问题是,在这3-5分钟之后,您可能会执行另一个
plistget
方法。该方法将从数组中丢弃所有对象。在加载数据和清除数组期间,表数据源为空,但您正试图从索引0获取此对象。这就是为什么会发生车祸

然而,解决办法很简单。根本不要调用removeAllObjects方法。 只需将数组替换为要检索的内容即可

替换从服务器获取数据时需要执行的操作:

NSMutableArray *tempDataArray = [[NSMutableArray alloc] init];
//put retrieved data from your web call in the tempDataArray
array = tempDataArray;

托特默斯·马克西姆斯是对的

如果您只需要在清除数组和重新加载数据之间架起一座桥梁,为什么不尝试在新数据准备好之前删除它们呢?那就换掉它们

或者,在尝试加载单元格之前,先复制它们(比如backUpArray和backUpArray2),然后检查array/array2中是否有数据(类似于
if([array count])
if(array){…


如果数组中没有任何内容,请使用
[backUpArray lastObject]
在重新加载数组之前(短暂?)为您提供一些数据。

对不起,我不明白,这段代码必须放在哪里?我使用了[array removeAllObjects];由于我不需要将信息连续添加到,所以我需要将其作为替代品,例如仅3个单元格
[array removeAllObjects];
NSMutableArray *tempDataArray = [[NSMutableArray alloc] init];
//put retrieved data from your web call in the tempDataArray
array = tempDataArray;