代码之家  ›  专栏  ›  技术社区  ›  Jonathan Sterling

NSarray是否复制对象?

  •  15
  • Jonathan Sterling  · 技术社区  · 16 年前

    当我做一个 NSArray 使用+ [NSArray arrayWithObjects:] ,是否复制这些对象?如果在将对象添加到数组后释放这些对象,我会遇到问题吗?

    1 回复  |  直到 16 年前
        1
  •  35
  •   Jim Puls    16 年前

    不,它不会复制它们。它保留了它们。是的,将对象添加到数组后,可以安全地释放这些对象。

    The docs 像往常一样,把这句话讲得很清楚:

    数组在托管内存环境中保持对其内容的强引用,每个对象在将其ID添加到数组之前都会收到一条保留消息,从数组中删除或取消分配数组时会收到一条释放消息。如果需要具有不同对象所有权语义的集合,请考虑改用cfarray-reference、nspointerray或nshashtable。