我要做的是显示存储在用户默认值中的树的可编辑树结构(使用NSOutlineView和NSTreeController)。将树加载到outlineview中很简单,但由于所有节点都是不可变对象,因此通过UI添加子节点甚至更改现有节点名称的值都会失败。我可以轻松地创建初始数组的可变副本,但之后只有顶级节点是可变的,而不是低级节点。
所以我的问题是:如何创建一个不可变数组的可变版本,其中所有嵌套的子对象都是可变的?
用户默认数据的结构是一个词典数组,其中每个Dictionary都有一个带有键“name”的String值,以及一个带有键“children”的Array。 “children”数组具有相同的结构(即字典数组,......)。