正确更新NSManagedObject关系

时间:2013-12-03 22:00:03

标签: ios objective-c core-data entity-relationship nsmanagedobject

我希望清楚地了解当我做插图时会发生什么:

Book *newBook = [NSEntityDescription insertNewObjectForEntityForName:@"Book" inManagedObjectContext:context];
// setting book's attributes
Person *peter = [Person queryAndReturnBookCollectionWithName:@"Peter Parker"]; // returns already recorded collection with an already set "favorite book" relationship
peter.favoriteBook = newBook;

我的猜测是,之前记录的peter.favoriteBook中的Book实例并没有被删除,但保留存储我是对的吗? 那么我应该手动检查它是否存在并在设置新值之前删除它还是有更简洁的方法呢?

1 个答案:

答案 0 :(得分:2)

不会删除favoriteBook的先前值,但该对象不再指向此关系。因此,彼得以前最喜欢的书仍将存在于核心数据中,但是peter.favoriteBook将返回分配给它的新值。