Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.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
Ios 获得'-[\uu NSCFArray removeObjectAtIndex:]:发送到不可变对象的变异方法';在UITableView中尝试对单元格重新排序时_Ios_Uitableview_Afnetworking - Fatal编程技术网

Ios 获得'-[\uu NSCFArray removeObjectAtIndex:]:发送到不可变对象的变异方法';在UITableView中尝试对单元格重新排序时

Ios 获得'-[\uu NSCFArray removeObjectAtIndex:]:发送到不可变对象的变异方法';在UITableView中尝试对单元格重新排序时,ios,uitableview,afnetworking,Ios,Uitableview,Afnetworking,我使用AFNetworking在UITableView单元格中获取JSON数据。我已将数组声明为NSMutableArray,但仍然得到-[\uu NSCFArray removeObjectAtIndex:]:发送到不可变对象的mutating方法发生错误,每当我尝试重新排序单元格时,应用程序都会崩溃 这是我用来重新排序的逻辑- -(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromInd

我使用
AFNetworking
UITableView
单元格中获取
JSON
数据。我已将数组声明为
NSMutableArray
,但仍然得到
-[\uu NSCFArray removeObjectAtIndex:]:发送到不可变对象的mutating方法发生错误,每当我尝试重新排序单元格时,应用程序都会崩溃

这是我用来重新排序的逻辑-

-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath
 toIndexPath:(NSIndexPath *)toIndexPath {

NSString *item = [self.jobsArrayFromAFNetworking objectAtIndex:fromIndexPath.row];
[self.jobsArrayFromAFNetworking removeObject:item];
[self.jobsArrayFromAFNetworking insertObject:item atIndex:toIndexPath.row];


}

我试着查找以前回答过的答案,但不明白。有人能告诉我这里出了什么问题吗?谢谢

您的@property
jobsArrayFromAFNetworking
要么使用
NSArray
初始化,要么声明为
copy

两者都会导致此错误消息,因为支持ivar将指向(不可变的)
NSArray


如果您将属性声明为
NSMutableArray
类型,请使用
strong
作为存储修饰符,而不是
copy

如何初始化
jobsArrayFromAFNetworking
?@property(strong,非原子)NSMutableArray*jobsArrayFromAFNetworking这是一个声明。。。在哪里初始化对象?我在viewDidLoad方法-self.jobsArrayFromAFNetworking=[[NSMutableArray alloc]init]中声明了这一点;谢谢你的回复。但我使用的属性是@property(强,非原子)NSMutableArray*arrayFromAFNetworking。另一个问题可能是什么?那么唯一的解释是您意外地为属性分配了一个不可变的
NSArray
。检查分配给
作业的所有位置从AFNetworking查看
。要查找所有位置,我需要临时将属性设置为
只读
。然后编译器会将您指向分配新数组的所有位置。我正在为AFNetworking self.jobsArrayFromAFNetworking=[responseobject objectForKey:@“all”]中的responseobject分配此数组;它有什么问题吗?是的,这通常只是一个不可变(普通)
NSArray
。您必须分配一个可变副本:
self.jobsArrayFromAFNetworking=[[responseObject objectForKey:@“all”]mutableCopy]