我对核心数据实体感到困惑。既然你永远不会分配它们,你需要保留它们吗?当一个视图控制器将一个实体作为其属性之一时,当另一个视图控制器分配实体时,它应该是弱,而当视图控制器设置属性本身时,强?
答案 0 :(得分:2)
核心数据实体只是一个与其他任何对象相同的对象,因此您应该关注memory management rules。您需要时可以retain
个实体,而当您不再需要它们时release
。
例如:使用sqlite后端,核心数据将缓存加载的数据,以最大限度地减少发送到db的请求数量。但它无法将所有记录保存在内存中,它应该了解您使用哪些实体,哪些实体没有,因此它可以释放未使用的和可用的内存。如果使用weak
属性,最终可能会使用垃圾指针或nil而不是实际对象。