使用json时从表视图中删除

时间:2014-04-08 18:24:45

标签: ios objective-c json uitableview

我创建了一个应用程序,它使用json从我的外部数据库中提取数据并填充表格视图。一切正常但我现在希望能够通过滑动删除按钮来删除表视图中的一个数据项。这是我的第二个视图控制器的代码,它给了我一个错误消息。在头文件中,我还设置了一个名为NSMutableArray的{​​{1}}。

json

我知道我需要使用php等将其编码为从实际数据库中删除。但是现在我只想从表视图中删除它。这是我收到的错误消息:' NSInternalInconsistencyException',原因:' - [__ NSCFArray removeObjectAtIndex:]:发送到不可变对象的变异方法'

2 个答案:

答案 0 :(得分:1)

这一行:

json = [ NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];

为您提供了一个不可变数组(NSArray),但您的代码使用json,就像NSMutableArray一样。

您有两种选择:

1)将行更改为:

json = [[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error] mutableCopy];

2)将行更改为:

json = [ NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error]; 

答案 1 :(得分:0)

您的JSON对象是不可变的,即无法修改。

您可以将对象传递给NSMutableDictionary构造函数,然后使用它来构建tableview / delete行等

NSMutableDictionary *mutableJSON = [NSMutableDictionary dictionaryWithDictionary:JSON];