1
9
重要的 :问题(以及下面我的代码)都处理一个非常具体的情况,其中nsmutabledictionary包含 只有 字符串数组。这些解决方案 不会工作 更复杂的例子。有关更一般的案例解决方案,请参见以下内容: 具体案例的答案:
您的代码应该可以工作,但是您肯定需要
一条很好的经验法则:如果你
注意:这里有一些可以工作的示例代码 仅适用于某些情况 .这是因为nsmutabledictionary只包含字符串数组(不需要进一步的深度复制):
|
2
72
由于免费桥接,您还可以使用corefoundation函数
|
3
11
假设数组的所有元素都实现了nscoding协议,您可以通过存档来进行深度复制,因为存档将保留对象的可变性。 像这样:
不过,这并不是特别有效。 |
4
8
我看到的另一种技术(一点也不高效)是使用
再说一次,这一点效率都不高。 |
5
3
试图通过检查找出答案
为了
为了
这两种方法都有相同的内部复制或不复制逻辑,可以将其提取到单独的方法中,但为了清晰起见,我将其保留为这样。 |
6
1
我想如果你使用ARC,我会更新一个答案。 WEVA提供的解决方案工作得很好。现在你可以这样做:
|
7
1
请注意,kcfpropertiesylistmutablecontainers和leaves具有真正的深度可变性。
|
8
0
这里是有用的答案,但是
我正在使用此类别:
实施(随时更改/扩展):
示例扩展“字符串保留为普通副本。如果您希望能够就地编辑它们,则可以覆盖此选项。我只需要使用一个深入的字典进行一些测试,所以我还没有实现它。 |
Martin sku · 在目标C中打印时间 2 年前 |
Vinod prajapat · 如何更新数组的最后一个元素? 2 年前 |
subin272 · 修复iOS中的多个按钮单击事件? 6 年前 |
James Chan · 如何使用锁定/解锁? 6 年前 |
Josh F. · NSBundle mainBundle返回零 6 年前 |