在NSTableView中编辑值会导致错误

时间:2014-06-18 01:25:19

标签: objective-c nstableview nsarraycontroller

我有一个NSTableView,其列的值绑定到NSArrayController。问题是,当用户尝试编辑表中的值(所有列都可编辑)时,程序会抛出此错误:

-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object

任何人都知道如何防止这种情况发生?我可以实现我自己的草率编辑器,它将为用户提供一对NSTextFields来为NSArrayController创建一个新对象,同时删除旧对象,但如果我可以让它工作,那将更受欢迎

谢谢!

1 个答案:

答案 0 :(得分:1)

您的表格视图的数据是否存储在NSDictionary中?根据错误,看起来好像用户编辑某个值时,您的代码正在尝试在NSDictionary中的某个键上设置新值,如下所示:

myDict[@"aKey"] = newValue;

但这是不可能的,因为NSDictionary的实例是不可变的。您可以尝试使用NSMutableDictionary代替。