提问人:VyTcdc 提问时间:10/24/2015 更新时间:10/24/2015 访问量:1285
核心数据删除不起作用
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
有人可以帮我吗.......
答:
7赞
Muhammad Junaid Butt
10/24/2015
#1
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......
这将解决您的问题。
评论
0赞
VyTcdc
10/24/2015
哦!我错过了:[appdel.managedObjectContext save:&error];非常感谢您的解决,现在它正在工作
0赞
Muhammad Junaid Butt
10/24/2015
@abdulheru我的荣幸。很高兴知道您的问题已得到解决。
评论