0

我有一个类A(NSManagedObject 的子类),它有一个类的属性B(也是 NSManagedObject 的子类),该属性不是@synthesize,在我的模型中和@dynamic之间没有关系,我只想在他() 活着。 (当我第一次从数据库中获取对象时,他的属性为空) ABABA
AB

我重写了B属性 getter,所以当第一次调用时,他B将从 db 中获取对象。

现在我需要保留 fetch 结果B吗?
我想我听说保留 NSManagedObjectContext 管理的对象不是一个好主意。

4

2 回答 2

2

保留没问题NSManagedObject- 继续做吧。唯一需要注意的是,如果您持有一个对象并且它被删除。然后你有一个对象的引用,但如果你试图读取或设置它的任何值,你会得到一个异常。因为这很难更新,所以当您使用 Core Data 关系时,Core Data 会为您删除传播。

因此,如上所述:使用关系。A 和 B 之间有多个关系并没有错。您也只需要具有相应的逆关系即可。

例如,您可以执行以下操作:

Person
  favoriteBook (to-1, inverse is favoriteByPersons)
  authoredBooks (to-many, inverse is authors)

Book
  authors (to-many, inverse is authoredBooks)
  favoriteByPersons (to-many, inverse is favoriteBook)

让 Core Data 为您完成繁重的工作。关系管理是 Core Data 真正擅长的事情之一。不要试图自己复制。

于 2012-05-06T10:18:40.000 回答
0

您应该清楚地使用 A 和 B 之间的一对一关系。这就是 Core Data 为您管理的内容。它更简单、更健壮,而且您不必担心内存问题。

于 2012-05-05T09:16:04.957 回答