Error[8]: Undefined offset: 1, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述所以我知道 swift数组是作为struct实现的,它会自动自动复制. 我已经写了我的类MyClass,我已经实现了copyWithZone来复制它 但是,我的swift数组包含我的MyClass对象,如: var array = [MyClass]() 当我想制作那个阵列的副本时 var anotherArray = array 它仍然不调用MyClassObject.copyWithZone, 所以我知道 swift数组是作为struct实现的,它会自动自动复制.

我已经写了我的类MyClass,我已经实现了copyWithZone来复制它

但是,我的swift数组包含我的MyClass对象,如:

var array = [MyClass]()

当我想制作那个阵列的副本时

var anotherArray = array

它仍然不调用MyClassObject.copyWithZone,稍后如果我更改数组中的object属性,anotherArray也会反映更改.

如何在不编写for循环来迭代每个对象的情况下复制它?

它不像deep copy for array of objects in swift那样重复,因为我不能使用struct来重写我的类.

解决方法 作为一个简单的声明,您可以使用如下代码:

var copIEdArray = array.map{[+++].copy()}

请注意,术语“deepcopy”对于您所谈论的内容有点误导.如果数组是异构的并且包含其他容器(如数组,字典,集合以及其他自定义容器和“叶子”对象),该怎么办?你应该做的是创建一个Deepcopiable协议,并要求任何符合Deepcopiable的对象要求任何子对象也符合Deepcopiable协议,并编写deepcopy()方法以递归方式调用所有对象的deepcopy()儿童对象.这样你最终可以使用任意深度的深拷贝.

总结

以上是内存溢出为你收集整理的ios – 如何制作快速的类对象数组的深层副本全部内容,希望文章能够帮你解决ios – 如何制作快速的类对象数组的深层副本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
ios – 如何制作快速的类对象数组的深层副本_app_内存溢出

ios – 如何制作快速的类对象数组的深层副本

ios – 如何制作快速的类对象数组的深层副本,第1张

概述所以我知道 swift数组是作为struct实现的,它会自动自动复制. 我已经写了我的类MyClass,我已经实现了copyWithZone来复制它 但是,我的swift数组包含我的MyClass对象,如: var array = [MyClass]() 当我想制作那个阵列的副本时 var anotherArray = array 它仍然不调用MyClassObject.copyWithZone, 所以我知道 swift数组是作为struct实现的,它会自动自动复制.

我已经写了我的类MyClass,我已经实现了copyWithZone来复制它

但是,我的swift数组包含我的MyClass对象,如:

var array = [MyClass]()

当我想制作那个阵列的副本时

var anotherArray = array

它仍然不调用MyClassObject.copyWithZone,稍后如果我更改数组中的object属性,anotherArray也会反映更改.

如何在不编写for循环来迭代每个对象的情况下复制它?

它不像deep copy for array of objects in swift那样重复,因为我不能使用struct来重写我的类.

解决方法 作为一个简单的声明,您可以使用如下代码:

var copIEdArray = array.map{.copy()}

请注意,术语“deepcopy”对于您所谈论的内容有点误导.如果数组是异构的并且包含其他容器(如数组,字典,集合以及其他自定义容器和“叶子”对象),该怎么办?你应该做的是创建一个Deepcopiable协议,并要求任何符合Deepcopiable的对象要求任何子对象也符合Deepcopiable协议,并编写deepcopy()方法以递归方式调用所有对象的deepcopy()儿童对象.这样你最终可以使用任意深度的深拷贝.

总结

以上是内存溢出为你收集整理的ios – 如何制作快速的类对象数组的深层副本全部内容,希望文章能够帮你解决ios – 如何制作快速的类对象数组的深层副本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1077681.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存