从我可以凑到的点点滴滴看来,这个问题的答案将是“不”,所以我将广泛地解释我想要实现的(可能的)我所做的事情试图用螺丝锤击。

我在我的应用程序中有一个要读入的有效文件扩展名列表,我正在通过目录进行递归。我希望这是一个偏好,所以我有以下内容:

NSMutableDictionary *dic = [NSMutableDictionary dictionary];
[dic setObject:[NSMutableArray arrayWithObjects:@"pdf", @"rtf", @"txt", nil] forKey:@"validExtensions"];
[[NSUserDefaults standardUserDefaults] registerDefaults:dic];

我正在将NSTableView绑定到绑定到共享用户默认控制器的NSArrayController ...

拥有用户可自定义的有效扩展名列表这是完全错误的方法吗?我误解了NSUserDefaults的角色吗?

有帮助吗?

解决方案

标题中提出的问题的答案是“是”......但不幸的是,这对您没有帮助,因为实际NSUserDefaults后备存储中的数据结构的可变性不受可变性的控制。使用registerDefaults传递的对象:。

对于本身就是结构的首选项值,为了更改它们,您必须读取旧结构,制作需要修改的任何部分的可变副本,更改它,然后将该结构设置为新值。不幸的是,它不太适合绑定,所以你需要一个胶合层来将绑定数组中的变化镜像到prefs中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top