NSManagedObjectContext是否自动删除对象

时间:2014-02-20 01:12:56

标签: objective-c core-data

我使用Core Data存储User实体,该实体与另一个实体(ScheduleDay)有很多关系。每次同步时我都会使用此行重置有序集:

self.user.scheduleDays = [NSOrderedSet orderedSet];

我的问题是过去是否被删除,或者是否有更好的方法来确保删除旧时代,以免弄乱NSManagedObjectContext或保存太多不必要的数据。

1 个答案:

答案 0 :(得分:2)

不,这不会自动删除这些对象。

在将scheduleDays设置为新设置之前,您必须自己手动删除它们。

要删除所有scheduleDays实体,您可以执行以下操作:

NSManagedObjectContext *context = self.user.managedObjectContext;

for (NSManagedObject *object in self.user.scheduleDays)
{
    [context delete:object];
}

self.user.scheduleDays = [NSOrderedSet orderedSet];

NSError *error;
[context save:&error];

if (error)
{
    // Handle error
}