在我的项目中,我有一个 NSArrayController 绑定以保存到应用程序的标准默认值 (NSUserDefaults)。这本身就完美地工作 - 添加的对象按预期保存和恢复。
但是,如果我以编程方式修改 NSArrayController 数组中包含的 NSMutableDictionaries 之一,则不会保存任何更改。只有在创建字典时设置的值似乎仍然存在。
我怀疑这是因为在数组中的字典上简单地调用 setObject:forValue: 不会通知控制器更改,但我不确定。难道我做错了什么?
更新:我已经从 NSMutableDictionary 切换到符合 KVC 的自定义对象(据我所知 - 我正在使用属性,因此应该注意)以及 NSCoding。它可以而且确实可以很好地保存和恢复 - 它只是不一致。它有点像在我想要的时候而不是在我更新属性时保存。