目前我使用NSNotifactionCenter来查看我的managedobjectcontext的更改:
[[NSNotificationCenter defaultCenter] addobserver:self selector:@selector(handleDataModelChange:) name:NSManagedobjectContextObjectsDIDChangeNotification object:self.managedobjectContext];
它会触发handleDataModelChange Methode,如下所示:
- (voID)handleDataModelChange:(NSNotification *)note{ NSSet *updatedobjects = [[note userInfo] objectForKey:NSUpdatedobjectsKey]; if (updatedobjects.count > 0) { for (NSManagedobject *obj in updatedobjects.allObjects) { NSLog(@"Object updated: %@ with values:",obj.entity.name); NSDictionary *theAttributes = [self getAllAttributesOf:obj]; for (Nsstring *attributename in theAttributes) { NSLog(@"name: %@ : %@",attributename,[obj valueForKey:attributename]); } } }}
如果对象发生更改,则会记录该对象的新属性.如何获得获取旧属性值的方法?
解决方法 从 NSManagedObject Class Reference:changedValues
返回一个字典,其中包含自上次获取或保存接收器以来已更改的持久属性的键和(新)值.
changedValuesForCurrentEvent
返回一个字典,其中包含自上次发布NSManagedobjectContextObjectsDIDChangeNotification以来已更改的持久属性的键和旧值.
总结以上是内存溢出为你收集整理的ios – 跟踪NSManagedObject的属性更改全部内容,希望文章能够帮你解决ios – 跟踪NSManagedObject的属性更改所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)