简体   繁体   中英

Core Data Delete not working

Hi I am trying to delete my core data saved values in the bellow coding but it showing deleted and when I again run the project it show including the deleted value means it is not deleting from core data

Can any one help me on this...

    - (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 

Could some one help me on this.......

   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......

This will solve your issue.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM