我有一个NSTableView
,其列的值绑定到NSArrayController
。问题是,当用户尝试编辑表中的值(所有列都可编辑)时,程序会抛出此错误:
-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object
任何人都知道如何防止这种情况发生?我可以实现我自己的草率编辑器,它将为用户提供一对NSTextFields
来为NSArrayController
创建一个新对象,同时删除旧对象,但如果我可以让它工作,那将更受欢迎
谢谢!
答案 0 :(得分:1)
您的表格视图的数据是否存储在NSDictionary
中?根据错误,看起来好像用户编辑某个值时,您的代码正在尝试在NSDictionary
中的某个键上设置新值,如下所示:
myDict[@"aKey"] = newValue;
但这是不可能的,因为NSDictionary
的实例是不可变的。您可以尝试使用NSMutableDictionary
代替。