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

标签 ios swift

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

我尝试过的代码

这是我的类(class):

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))

关于ios - 在 Swift 中为包含嵌套对象的对象实现深度复制的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41329515/

相关文章:

ios - 如何在 iOS 中通过 UIActivityViewController 导出 PHAsset 视频

ios - 如何使表格 View 水平全宽

ios - 按钮 heightConstraint 打破自动布局

以错误类型作为参数的 iOS AWS 协议(protocol)方法导致协议(protocol)不符合

ios - becomeFirstResponder() 不起作用

ios - MailCore 如何删除邮件

iphone - 我可以提供用于Web应用程序的iPhone主屏幕快捷方式的图标吗?

ios - UILabel 在模拟器或 iPad 中均未显示

iOS Storyboard翻转水平动画禁用文本字段

swift - CoreData 和 Swift : contents gets swapped