有人可以澄清" refreshObject:mergeChanges:YES"为了我?

时间:2016-05-11 08:51:55

标签: ios swift core-data nsmanagedobject

我们说我有一个" Person" NSManagedObject类:

      .mycard {
      background-color: #FFC20A;
      color: black;
      margin-bottom: 10px;
      margin-top: 10px;
      margin-left: 10px;
      margin-right: 10px;
      padding: 5px 5px 5px 5px;
      text-align: center;
      height: 200px;
      width: 230px;
      border-radius: 10px;
      font-size: 12px;
      }


      .card-header {
      color: black;
      height:24px;
      padding: 1px 0px 1px 0px;
      font-size: 16px;
      text-align: center;

      }

      .card-block {
      background-color: #b2b2b2;
      color: black;
      border-radius: 10px;
      height: 100px;
      width: 220px;
      }

      .card-name {
        height:35px;
      }

      .cardfooter {
      border-radius: 5px;
      width:100%;
      height: 34px;
      bottom:0;
      margin-bottom: 0px;
      }

如何确保将bestFriend引用为" Person"不会创建一个强大的参考周期?我知道您可以使用refreshObject:mergeChanges来管理CoreData对象之间的强引用并创建错误,因此强引用不会持久存在。我不明白的是,当我使用它或我称之为它时。我第一次访问" Person"之后是否使用它?对象?我是否会在观看时使用它?保存或删除之前或之后?如果有人可以就此提供一些澄清,我会非常感激。非常感谢你!

1 个答案:

答案 0 :(得分:1)

你不会有任何内存泄漏问题(据我所知),你可能遇到的唯一问题是一个膨胀的对象图,它存储在内存中,需要“修剪”。

如果你想“修剪”对象图,我建议你在完成对象图时从对象图中删除未使用的对象,否则它们会再次出现在对象图中。

因此,每当您使用refreshObject:mergeChanges时,请使用Person(使用mergeChanges:false),而bestFriend将变为错误。