如何制作自定义对象的NSMutableArray属性的深层副本

时间:2015-09-01 06:22:02

标签: ios objective-c nsmutablearray deep-copy custom-object

我有一个具有NSMutableArray属性的CustomObject(类型为NSObject)。该属性包含NSDictionary对象。我只需要属性的深层副本,以允许在不同的视图控制器中进行编辑;编辑后,我希望用编辑后的深度复制属性替换原始属性。

我的问题是:

  
      
  • 我是否需要制作一个深刻的&copy文章' ?
  •   
  • 如果是这样,我如何实现它,因为它只是需要深度复制的单一属性?
  •   

我现在通过这样做来规避这一点:

where (:productSerialNumber is null or
           pd_res.engine_serial_number =
                   :productSerialNumber) like '%_%'

虽然这可以作为NSMutableArray& NSDictionary实现了NSCoding,它没有感觉到正确的方式,或者是它?请帮助:)

1 个答案:

答案 0 :(得分:0)

这是一种具有多重优点的可接受方式:

  1. 工作
  2. 简单明了
  3. 这是一个很小的代码
  4. 它是自包含的,因此将来很容易改变
  5. 任何替代方案都意味着您遍历内容并自行手动复制所有内容,您可能会有以下几个原因:

    1. 你知道什么是真正不可改变的,你可以避免复制
    2. 您需要可变容器(数组中的词典
    3. 即使在某些情况下,您也希望仅使用属性列表来运行类似的基于档案的流程(因此您继续编写最少的代码并利用提供的SDK)。