我使用Core Data存储User
实体,该实体与另一个实体(ScheduleDay
)有很多关系。每次同步时我都会使用此行重置有序集:
self.user.scheduleDays = [NSOrderedSet orderedSet];
我的问题是过去是否被删除,或者是否有更好的方法来确保删除旧时代,以免弄乱NSManagedObjectContext
或保存太多不必要的数据。
答案 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
}