代码之家  ›  专栏  ›  技术社区  ›  zs2020

为什么我需要保留托管对象才能进行处理?

  •  0
  • zs2020  · 技术社区  · 14 年前

    这是我的代码中发生的事情。我有一个类B,它包含一个方法,将获取的结果r(其类型为nsmanagedObject)重新调整到我当前的类A中。然后我将r分配给a中的属性pr。过了一会儿,a中的另一个方法尝试更新对象mo并将其持久化到数据库中。但当时PA为零。当它被分配给pr时,我需要保留r。我声明pr是(非原子的,retain)并合成它。从B返回的提取结果是否自动释放?

    1 回复  |  直到 14 年前
        1
  •  1
  •   RunLoop    14 年前

    您使用的格式是:

    self.pR = R;
    

    如果您只说pr=r;,r将不会被保留,因为您没有访问合成方法。