我如何精确复制数组?
我很难找到有关在Swift中复制数组的信息.
我试过用 .copy()
var originalArray = [1, 2, 3, 4]
var duplicateArray = originalArray.copy()
Run Code Online (Sandbox Code Playgroud) 我有一个Realm对象,它有几个关系,任何人都有一个很好的代码片段,可以概括一个复制方法,在数据库中创建一个副本.
所以我知道swift数组是作为struct实现的,它会自动自动复制.
我已经写了我的课MyClass,我已经实现copyWithZone了复制它
但是,我的swift数组包含我的MyClass对象,例如:
var array = [MyClass]()
当我想制作那个阵列的副本时
var anotherArray = array
它仍然没有调用MyClassObject.copyWithZone,后来如果我更改了对象属性array,anotherArray也会反映出更改.
如何在不编写for循环来迭代每个对象的情况下复制它?
它不像swift中的对象数组的深层副本那样重复,因为我不能使用struct来重写我的类.
我正在尝试深度复制Swift类实例.由于copy和mutableCopy函数仅适用于NSObject类后代,我需要为Swift类对象实现我自己的copy函数.
这是我做的,
protocol Copying {
init(original: Self)
}
extension Copying {
func copy() -> Self {
return Self.init(original: self)
}
}
class A : Copying {
var name : String? = nil
var age : Int? = nil
var address : String? = nil
init(name : String) {
self.name = name
}
required init(original: A) {
//one way
self.name = original.name
self.age = original.age
self.address = original.address
//second way
let originalReflect = Mirror(reflecting: original) …Run Code Online (Sandbox Code Playgroud)