2015-10-24 152 views
0

嗨我想刪除我的核心數據保存下列編碼的值,但它顯示刪除,當我再次運行它顯示的項目,包括刪除的值意味着它不是從核心數據刪除核心數據刪除不起作用

任何一個可以幫助我在此...

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

能有人幫我在這.......

回答

2
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

哦!我錯過了:[appdel.managedObjectContext save:&error];非常感謝你的解決,現在它正在工作 – VyTcdc

+0

@abdulheru我的榮幸。很高興知道您的問題已得到解決。 –