![]() |
1
9
重要的 :问题(以及下面我的代码)都处理一个非常具体的情况,其中nsmutabledictionary包含 只有 字符串数组。这些解决方案 不会工作 更复杂的例子。有关更一般的案例解决方案,请参见以下内容: 具体案例的答案:
您的代码应该可以工作,但是您肯定需要
一条很好的经验法则:如果你
注意:这里有一些可以工作的示例代码 仅适用于某些情况 .这是因为nsmutabledictionary只包含字符串数组(不需要进一步的深度复制):
|
![]() |
2
72
由于免费桥接,您还可以使用corefoundation函数
|
![]() |
3
11
假设数组的所有元素都实现了nscoding协议,您可以通过存档来进行深度复制,因为存档将保留对象的可变性。 像这样:
不过,这并不是特别有效。 |
![]() |
4
8
我看到的另一种技术(一点也不高效)是使用
再说一次,这一点效率都不高。 |
![]() |
5
3
试图通过检查找出答案
为了
为了
这两种方法都有相同的内部复制或不复制逻辑,可以将其提取到单独的方法中,但为了清晰起见,我将其保留为这样。 |
![]() |
6
1
我想如果你使用ARC,我会更新一个答案。 WEVA提供的解决方案工作得很好。现在你可以这样做:
|
![]() |
7
1
请注意,kcfpropertiesylistmutablecontainers和leaves具有真正的深度可变性。
|
![]() |
8
0
这里是有用的答案,但是
我正在使用此类别:
实施(随时更改/扩展):
示例扩展“字符串保留为普通副本。如果您希望能够就地编辑它们,则可以覆盖此选项。我只需要使用一个深入的字典进行一些测试,所以我还没有实现它。 |
![]() |
mikko · SwiftUI如何在不同堆栈中实现同一视图的平滑动画 5 月前 |
![]() |
routern · 如何组合contextMenu和圆角矩形? 6 月前 |
![]() |
DevHome98 · 3D触摸不适用于设备swift 1 年前 |
![]() |
dunoiww · 从全屏返回时如何触发onAppear 1 年前 |
![]() |
Community wiki · iPhone上ivar的继承问题 1 年前 |
![]() |
Community wiki · 查找iOS日历 1 年前 |
![]() |
Community wiki · 有效的IPhone编程技术[关闭] 1 年前 |