在CoreData保存之前识别哪些字段已经改变
//设置通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dataChanged:) name:NSManagedObjectContextDidSaveNotification object:context];
//后来
- (void)dataChanged:(NSNotification *)notification{ NSDictionary *info = notification.userInfo; NSSet *insertedObjects = [info objectForKey:NSInsertedObjectsKey]; NSSet *deletedObjects = [info objectForKey:NSDeletedObjectsKey]; NSSet *updatedObjects = [info objectForKey:NSUpdatedObjectsKey];
无论如何,从更新的对象确定哪些字段实际上被改变了吗?
谢谢,迈克尔
以下应该做的伎俩,但您将需要使用NSManagedObjectContextWillSaveNotification并通过用于保存对象相同的NSManagedObjectContext访问您的更新的对象。
for(NSManagedObject *obj in updatedObjects){ NSDictionary *changes = [obj changedValues]; // now process the changes as you need }
请参阅评论中的讨论。
- 核心数据validation:从Objective-C到Swift
- 将iCloud Store迁移到本地商店,并确保每次启动应用程序时都有数据
- NSSortDescriptor – 基于另一个数组sorting描述符
- 核心数据,当NSFetchRequest返回NSDictionaryResultType时如何获取NSManagedObject的ObjectId?
- NSFetchedResultsController似乎是插入空的对象数组?
- CoreData问题: – :无法识别的select器发送到实例
- 如何检查UICollectionView中插入和删除的项目,看到意外的删除项目
- 核心数据应用程序崩溃与“controllerWillChangeContent:无法识别的select器发送到实例”
- 将图像保存到核心数据