OGeek|极客世界-中国程序员成长平台

标题: ios - UITableViewCell - 更新 NSMutableDictionary 值 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 12:39
标题: ios - UITableViewCell - 更新 NSMutableDictionary 值

我有 UITableViewController,它有类似推特的帖子和类似的按钮。我所做的是,如果成功尝试将喜欢的计数更新 + 1,则单击喜欢按钮时。除了更新部分之外,我做了上述所有方法。 我得到由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object'错误。

这是我的代码。

- (UITableViewCell *)tableViewUITableView *)tableView cellForRowAtIndexPathNSIndexPath *)indexPath{
    FeedTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier"Cell" forIndexPath:indexPath];


    NSDictionary *feedList = [liveFeeds objectAtIndex:indexPath.row];
//liveFeeds is NSMutableArray

cell.likeCount.text = [feedList objectForKey"likes"];
cell.like.tag = indexPath.row;

    [cell.like addTarget:self actionselector(likeClicked forControlEvents:UIControlEventTouchUpInside];
}

-(void) likeClickedUIButton*)sender{

//Here im using AFNetworking and getting JSON response.
//After that im doing following to update the like

NSMutableDictionary* feedList = [liveFeeds objectAtIndex:sender.tag];

            NSString *oldLike = [feedList objectForKey"likes"];
            int newLike = [oldLike intValue] + 1;
            NSString *strFromInt = [NSString stringWithFormat"%d",newLike];

            NSLog(@"updated like %@",strFromInt); // up to this it works

            [feedList setObject:strFromInt forKey"likes"]; // in here it get crashe

            [self.tableView reloadData];

}

我想做的是。 liveFeeds 使用 Like Count 更新数组并重新加载表。我做错了吗?或者有什么简单的方法可以做到这一点?



Best Answer-推荐答案


[liveFeeds objectAtIndex:sender.tag] 很可能是 NSDictionary,而不是 NSMutableDictionary。所以你不能改变它的内容。

使用 [liveFeeds objectAtIndex:sender.tag] 的内容构建 feedlist :

NSMutableDictionary* feedlist = [NSMutableDictionary dictionaryWithDictionary:[liveFeeds objectAtIndex:sender.tag]]

关于ios - UITableViewCell - 更新 NSMutableDictionary 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34880662/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4