我们说我有一个" 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"之后是否使用它?对象?我是否会在观看时使用它?保存或删除之前或之后?如果有人可以就此提供一些澄清,我会非常感激。非常感谢你!
答案 0 :(得分:1)
你不会有任何内存泄漏问题(据我所知),你可能遇到的唯一问题是一个膨胀的对象图,它存储在内存中,需要“修剪”。
如果你想“修剪”对象图,我建议你在完成对象图时从对象图中删除未使用的对象,否则它们会再次出现在对象图中。
因此,每当您使用refreshObject:mergeChanges
时,请使用Person
(使用mergeChanges:false),而bestFriend将变为错误。