ios - 有人可以为我提供 "refreshObject:mergeChanges:YES"的说明吗?

标签 ios swift core-data nsmanagedobject

假设我有一个“Person”NSManagedObject 类:

class Person: NSManagedObject {
    NSManaged var name:String?
    NSManaged var bestFriend:Person?
}

如何确保将 bestFriend 作为“人”的引用不会创建强引用循环?我知道您可以使用refreshObject:mergeChanges 来管理CoreData 对象之间的强引用并创建错误,以便强引用不会持续存在。我不明白的是我什么时候使用它,或者我在哪里调用它。我是否在第一次访问“Person”对象后使用它?我在离开 View 时使用它吗?在保存或删除之前还是之后?如果有人能对此提供一些澄清,我将非常感激。非常感谢!

最佳答案

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

如果您想“修剪”对象图,我建议您在使用完对象图后从对象图中删除未使用的对象,否则它们将再次进入对象图。

因此,每当您完成对Person 的处理时,请使用refreshObject:mergeChanges(使用mergeChanges:false),并且bestFriend 将变成故障。

关于ios - 有人可以为我提供 "refreshObject:mergeChanges:YES"的说明吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37157537/

相关文章:

ios - SwiftUI 未将自定义字体应用于选项卡式 View

ios - 基本的 IOS 运动检测器

ios - ScrollView 内的 ForEach 不占用整个宽度

ios - 向左滑动时 subview 未被剪裁以删除 UITableViewCell

ios - 如何正确获取CoreData表达式查询结果

ios - 具有实例属性数组的 Swift 性能

html - 如何在 swift 2.0 中解码 HTML 实体?

ios - CoreData : warning: Unable to load class named 'WEEReadings' for entity 'Readings' . 找不到类,改用默认的 NSManagedObject

ios - 从 Core Data 中检索单个对象