gpt4 book ai didi

objective-c - 如何使用 Core Data 更新和删除表的所需记录

转载 作者:行者123 更新时间:2023-12-03 16:55:15 26 4
gpt4 key购买 nike

我正在学习核心数据如何使用核心数据删除和更新数据。我一直致力于上传和获取。我需要编写删除和更新的方法。请告诉我如何使用核心数据更新和删除重新编码。

下面我编写了使用核心数据从表上传和获取数据的代码。

-(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============================================================================= ");

}
}

最佳答案

我正在做一个涉及Core Data的项目,我会想和你分享一些关于它的事情。

很明显,在删除或更新记录之前,您需要检索该记录。

以empId 12345的员工为例,

a)删除

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];
[self.managedObjectContext deleteObject:employee];
[self.managedObjectContext save:nil];
}

b) 更新

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];
}

关于objective-c - 如何使用 Core Data 更新和删除表的所需记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8709011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com