使用ARC时,Core Data中的实体应该是强或弱的属性吗?

时间:2012-05-04 04:52:21

标签: objective-c memory-management automatic-ref-counting

我对核心数据实体感到困惑。既然你永远不会分配它们,你需要保留它们吗?当一个视图控制器将一个实体作为其属性之一时,当另一个视图控制器分配实体时,它应该是,而当视图控制器设置属性本身时,

1 个答案:

答案 0 :(得分:2)

核心数据实体只是一个与其他任何对象相同的对象,因此您应该关注memory management rules。您需要时可以retain个实体,而当您不再需要它们时release

例如:使用sqlite后端,核心数据将缓存加载的数据,以最大限度地减少发送到db的请求数量。但它无法将所有记录保存在内存中,它应该了解您使用哪些实体,哪些实体没有,因此它可以释放未使用的和可用的内存。如果使用weak属性,最终可能会使用垃圾指针或nil而不是实际对象。