Ios 在Swift中为包含嵌套对象的对象实现深度复制的正确方法?

Ios 在Swift中为包含嵌套对象的对象实现深度复制的正确方法?,ios,swift,Ios,Swift,我正在尝试获取包含swift中嵌套对象的类对象的深度副本,有人能帮忙吗 我试过的代码 这是我的班级: class ZLFilters: NSObject, NSCopying { var filterChoices : [ZLFilterChoice]? required init(_ map: Map){ } init(filterChoices : [ZLFilterChoice]) { self.filterChoices = filterChoices } fu

我正在尝试获取包含swift中嵌套对象的类对象的深度副本,有人能帮忙吗

我试过的代码

这是我的班级:

class ZLFilters: NSObject, NSCopying {

var filterChoices   : [ZLFilterChoice]?


required init(_ map: Map){

}

init(filterChoices : [ZLFilterChoice]) {

    self.filterChoices = filterChoices
}

func copyWithZone(zone: NSZone) -> AnyObject {

    let copy = ZLFilters(filterChoices: filterChoices!)
    return copy
  }
}

但问题是filterChoices本身就是一个对象,因此在内部它不会进行深度复制。

假设您的过滤器选择也符合以下条件:

let copy = ZLFilters(filterChoices: filterChoices!.copyWithZone(zone))

为每个属性编写代码。如果你写了一些东西来分享你的代码,我们可以帮助你复制var filterChoices:[ZLFilterChoice]?,因为filterChoices是ZLFilterChoice的数组,所以我不能在filterChoices(array)对象上调用copyWithZone(zone)。