Objective c 如何更新和删除使用核心数据的表的所需记录
我正在学习核心数据 如何使用核心数据删除和更新数据。我一直致力于上传和获取。我需要编写删除和更新的方法。请告诉我如何使用核心数据更新和删除重新编码 下面我编写了使用核心数据上传和从表中获取数据的代码Objective c 如何更新和删除使用核心数据的表的所需记录,objective-c,cocoa,core-data,Objective C,Cocoa,Core Data,我正在学习核心数据 如何使用核心数据删除和更新数据。我一直致力于上传和获取。我需要编写删除和更新的方法。请告诉我如何使用核心数据更新和删除重新编码 下面我编写了使用核心数据上传和从表中获取数据的代码 -(void)uploadData { Employee *empObj=(Employee *)[NSEntityDescription insertNewObjectForEntityForName:@"Employee" inManagedObjectContext:self.mana
-(void)uploadData
{
Employee *empObj=(Employee *)[NSEntityDescription insertNewObjectForEntityForName:@"Employee" inManagedObjectContext:self.managedObjectContext];
empObj.empId=[NSNumber numberWithInt:12345];
empObj.empSalary=[NSNumber numberWithInt:25000];
empObj.empName=@"Venu";
empObj.empDesignation=@"Programmer";
empObj.empExp=@"2 Years";
if ([self.managedObjectContext hasChanges] )
{
[self.managedObjectContext save:nil];
}
}
-(void)fetchData
{
NSEntityDescription *empEntity = [NSEntityDescription entityForName:@"Employee" inManagedObjectContext:self.managedObjectContext];
// Setup the fetch request
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entity];
NSArray *fatherArray=[self.managedObjectContext executeFetchRequest:request error:nil];
[request setEntity:empEntity];
NSArray *empArray=[self.managedObjectContext executeFetchRequest:request error:nil];
for (int i=0; i<[empArray count]; i++)
{
printf("\n=================================Recored== %d==================================== ",i);
Employee *empObj=[empArray objectAtIndex:i];
printf("\n obj.empName========= %s",[empObj.empName UTF8String]);
printf("\n obj.empDesignation========= %s",[empObj.empDesignation UTF8String]);
printf("\n obj.empExp========= %s",[empObj.empExp UTF8String]);
printf("\n obj.empId========= %d",[empObj.empId intValue]);
printf("\n obj.empSalary========= %d",[empObj.empSalary intValue]);
printf("\n============================================================================= ");
}
}
-(void)上传数据
{
Employee*empObj=(Employee*)[NSEntityDescription insertNewObjectForEntityForName:@“Employee”inManagedObjectContext:self.managedObjectContext];
empObj.empId=[NSNumber numberwhithint:12345];
empObj.empalary=[NSNumber numberwhithint:25000];
empObj.empName=@“Venu”;
empObj.empsignation=@“程序员”;
empObj.empExp=@“2年”;
if([self.managedObjectContext hasChanges])
{
[self.managedObjectContext保存:nil];
}
}
-(void)获取数据
{
NSEntityDescription*Emperty=[NSEntityDescription entityForName:@“Employee”在managedObjectContext:self.managedObjectContext];
//设置获取请求
NSFetchRequest*request=[[NSFetchRequest alloc]init];
[请求集合实体:实体];
NSArray*fatherArray=[self.managedObjectContext executeFetchRequest:请求错误:nil];
[请求设置实体:emperty];
NSArray*empArray=[self.managedObjectContext executeFetchRequest:请求错误:nil];
对于(int i=0;i),在成功获取请求后,只需请求托管objectcontext删除对象,即可删除对象:
for (NSManagedObject *managedObject in items) {
[self.managedObjectContext deleteObject:managedObject];
DebugLog(@"%@ object deleted",entityDescription);
}
if (![self.managedObjectContext save:&error]) {
DebugLog(@"Error deleting %@ - error:%@",entityDescription,error);
}
更新以类似的方式完成,获取所需对象,更改值,并保存上下文。成功获取请求后,您只需请求托管objectcontext删除对象即可删除对象:
for (NSManagedObject *managedObject in items) {
[self.managedObjectContext deleteObject:managedObject];
DebugLog(@"%@ object deleted",entityDescription);
}
if (![self.managedObjectContext save:&error]) {
DebugLog(@"Error deleting %@ - error:%@",entityDescription,error);
}
更新是以类似的方式完成的,获取所需的对象,更改值,并保存上下文。我正在做一个涉及核心数据的项目,我会
我想和你分享一些关于它的事情
很明显,在删除或更新记录之前,您需要
检索该记录
以empId为12345的员工为例
a) 删除
b) 更新
我正在做一个涉及核心数据的项目,我会
我想和你分享一些关于它的事情
很明显,在删除或更新记录之前,您需要
检索该记录
以empId为12345的员工为例
a) 删除
b) 更新
这里发生了什么?是否明智地保存“仅”更改的记录,还是更新了EMPARY中的所有项?这里发生了什么?是否明智地保存“仅”更改的记录,还是更新了EMPARY中的所有项?
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@:@"Employee"
inManagedObjectContext:self.managedObjectContext];
[request setEntity:entity];
NSPredicate *pred = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"empId = %d", 12345]];
[request setPredicate:pred];
NSArray *empArray=[self.managedObjectContext executeFetchRequest:request error:nil];
[request release];
if ([empArray count] > 0){
Employee *employee = [empArray objectAtIndex:0];
employee.empSalary=[NSNumber numberWithInt:45000];
employee.empName=@"John";
employee.empDesignation=@"Analysist";
employee.empExp=@"4 Years";
[self.managedObjectContext save:nil];
}