更換對象我有一個數組結構如下:在字典中的數組
NSMutableArray topArray{
NSMutableArray middleArray{
NSMutableArray lowerArray{
NSMutableDictionary dict{
}
}
}
}
陣列結構填充有一些數據,我從web取回是JSON格式。
我想編輯的對象之一中的NSMutableDictionary如下:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSMutableArray *lowerArray = [[self middleArray] objectAtIndex:[indexPath section]];
NSMutableDictionary *dict = [lowerArray objectAtIndex:[indexPath row]];
[dict setObject:[NSNumber numberWithInt:1] forKey:@"key"];
[[self tableView] reloadData];
}
內每個陣列的數據是正確的(我曾與打印語句檢查),但是,當我嘗試改變對象的字典,我得到了以下錯誤: 原因:
'-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object'
我所需要的對象在字典中的陣列結構中的變化。
這可能是JSON數據的問題,因爲當topArray首次使用JSON數據初始化時,中間和低位數組的形式只是NSArray的?
對不起,如果這是令人困惑,我會嘗試澄清更多,如果您有任何問題。
在此先感謝您的幫助。
你是如何初始化數據結構的? – bgfriend0
如果您從NSJSONSerialization獲取JSON,則可以選擇讓它返回可變對象。打開該選項,你的問題應該結束了。 –
請注意,只是因爲聲明瞭指針,NSMutableDictionary並不意味着它指向的對象是可變的,甚至不是字典。 –