【问题标题】:Right way to implement deep copy for object which contains nested objects in Swift?在 Swift 中为包含嵌套对象的对象实现深拷贝的正确方法?
【发布时间】:2026-01-19 16:15:01
【问题描述】:

我正在尝试快速获取包含嵌套对象的类对象的深层副本,有人可以帮忙吗?

我尝试过的代码

这是我的课:

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 本身就是一个对象,所以在内部它也不做深拷贝。

【问题讨论】:

标签: ios swift


【解决方案1】:

假设您的过滤器选择也符合:

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

【讨论】:

  • var filterChoices : [ZLFilterChoice]?,由于 filterchoices 是 ZLFilterChoice 的数组,所以我不能在 filterChoices(array) 对象上调用 copyWithZone(zone)。
最近更新 更多