OGeek|极客世界-中国程序员成长平台

标题: ios - 核心数据删除不起作用 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 11:56
标题: ios - 核心数据删除不起作用

您好,我正在尝试删除我在波纹管编码中保存的核心数据值,但它显示已删除,当我再次运行该项目时,它显示包括已删除的值意味着它没有从核心数据中删除

谁能帮我解决这个问题...

    - (IBAction)Deleteid)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 

有人可以帮我解决这个问题......



Best Answer-推荐答案


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

这将解决您的问题。

关于ios - 核心数据删除不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33317605/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4