核心数据删除不起作用
Core Data Delete not working
您好,我正在尝试删除我在波纹管编码中保存的核心数据值,但它显示已删除,当我再次 运行 它显示的项目包括已删除的值意味着它没有从核心数据中删除
谁能帮我解决这个问题...
- (IBAction)Delete:(id)sender
{
AppDelegate * appdel = (AppDelegate *)[[UIApplication sharedApplication]delegate];
NSString *soughtPid= self.text1.text;
NSEntityDescription * productEntity = [NSEntityDescription entityForName:@"Students" inManagedObjectContext:appdel.managedObjectContext];
NSFetchRequest *fetch=[[NSFetchRequest alloc] init];
[fetch setEntity:productEntity];
NSPredicate *p=[NSPredicate predicateWithFormat:@"name == %@", soughtPid];
[fetch setPredicate:p];
//... add sorts if you want them
NSError *fetchError;
NSArray *fetchedProducts=[appdel.managedObjectContext executeFetchRequest:fetch error:&fetchError];
// handle error
for (NSManagedObject *product in fetchedProducts) {
[appdel.managedObjectContext deleteObject:product];
NSLog(@"Deleted Names : %@",[product valueForKey:@"name"]);
NSLog(@"****.......*****");
}
[tableview reloadData];
}
Core Data Available values are 4 mentioned bellow.
2015-10-24 16:47:23.588 usecoredattuts[2293:108804] Names : Rahman
2015-10-24 16:47:23.589 usecoredattuts[2293:108804] Names : Karthi
2015-10-24 16:47:23.589 usecoredattuts[2293:108804] Names : Ravi
2015-10-24 16:47:23.589 usecoredattuts[2293:108804] Names : Abdul
After deleted one value mentioned bellow
2015-10-24 16:47:31.986 usecoredattuts[2293:108804] Deleted Names : Ravi
When fetching the core data values show like this
2015-10-24 16:47:41.521 usecoredattuts[2293:108804] Names : Rahman
2015-10-24 16:47:41.521 usecoredattuts[2293:108804] Names : Abdul
2015-10-24 16:47:41.521 usecoredattuts[2293:108804] Names : Karthi
Final After stoping the xcode and again when run the project I got the bellow names.
2015-10-24 16:52:10.438 usecoredattuts[2308:110460] Names : Rahman
2015-10-24 16:52:10.438 usecoredattuts[2308:110460] Names : Karthi
2015-10-24 16:52:10.438 usecoredattuts[2308:110460] Names : Ravi
2015-10-24 16:52:10.438 usecoredattuts[2308:110460] Names : Abdul
That means the name Ravi was not deleted
有人可以帮我解决这个问题......
for (NSManagedObject *product in fetchedProducts) {
[appdel.managedObjectContext deleteObject:product];
NSLog(@"Deleted Names : %@",[product valueForKey:@"name"]);
NSLog(@"****.......*****");
}
//After delete. Save the context
NSError *error = nil;
[appdel.managedObjectContext save:&error];
//Rest of your code......
这将解决您的问题。
您好,我正在尝试删除我在波纹管编码中保存的核心数据值,但它显示已删除,当我再次 运行 它显示的项目包括已删除的值意味着它没有从核心数据中删除
谁能帮我解决这个问题...
- (IBAction)Delete:(id)sender
{
AppDelegate * appdel = (AppDelegate *)[[UIApplication sharedApplication]delegate];
NSString *soughtPid= self.text1.text;
NSEntityDescription * productEntity = [NSEntityDescription entityForName:@"Students" inManagedObjectContext:appdel.managedObjectContext];
NSFetchRequest *fetch=[[NSFetchRequest alloc] init];
[fetch setEntity:productEntity];
NSPredicate *p=[NSPredicate predicateWithFormat:@"name == %@", soughtPid];
[fetch setPredicate:p];
//... add sorts if you want them
NSError *fetchError;
NSArray *fetchedProducts=[appdel.managedObjectContext executeFetchRequest:fetch error:&fetchError];
// handle error
for (NSManagedObject *product in fetchedProducts) {
[appdel.managedObjectContext deleteObject:product];
NSLog(@"Deleted Names : %@",[product valueForKey:@"name"]);
NSLog(@"****.......*****");
}
[tableview reloadData];
}
Core Data Available values are 4 mentioned bellow.
2015-10-24 16:47:23.588 usecoredattuts[2293:108804] Names : Rahman
2015-10-24 16:47:23.589 usecoredattuts[2293:108804] Names : Karthi
2015-10-24 16:47:23.589 usecoredattuts[2293:108804] Names : Ravi
2015-10-24 16:47:23.589 usecoredattuts[2293:108804] Names : Abdul
After deleted one value mentioned bellow
2015-10-24 16:47:31.986 usecoredattuts[2293:108804] Deleted Names : Ravi
When fetching the core data values show like this
2015-10-24 16:47:41.521 usecoredattuts[2293:108804] Names : Rahman
2015-10-24 16:47:41.521 usecoredattuts[2293:108804] Names : Abdul
2015-10-24 16:47:41.521 usecoredattuts[2293:108804] Names : Karthi
Final After stoping the xcode and again when run the project I got the bellow names.
2015-10-24 16:52:10.438 usecoredattuts[2308:110460] Names : Rahman
2015-10-24 16:52:10.438 usecoredattuts[2308:110460] Names : Karthi
2015-10-24 16:52:10.438 usecoredattuts[2308:110460] Names : Ravi
2015-10-24 16:52:10.438 usecoredattuts[2308:110460] Names : Abdul
That means the name Ravi was not deleted
有人可以帮我解决这个问题......
for (NSManagedObject *product in fetchedProducts) {
[appdel.managedObjectContext deleteObject:product];
NSLog(@"Deleted Names : %@",[product valueForKey:@"name"]);
NSLog(@"****.......*****");
}
//After delete. Save the context
NSError *error = nil;
[appdel.managedObjectContext save:&error];
//Rest of your code......
这将解决您的问题。