在iOS中删除和更新Core Data中的数据

rem*_*3my 2 core-data objective-c ios

嗨,我是iOS中核心数据的新手,我已经实现了4个文本字段,即姓名,年龄,公司,地址.现在,当用户输入数据时,我将数据保存在Core Data中.

NSManagedObjectContext *context =
[appDelegate managedObjectContext];

NSManagedObject *newContact;
newContact = [NSEntityDescription
              insertNewObjectForEntityForName:@"Device"
              inManagedObjectContext:context];
[newContact setValue: _name.text forKey:@"name"];
[newContact setValue: _address.text forKey:@"address"];
[newContact setValue: _age.text forKey:@"age"];
[newContact setValue:_company.text forKey:@"company
Run Code Online (Sandbox Code Playgroud)

同样,我可以在这些文本字段中获取和显示数据.

AppDelegate*appDelegate = [[UIApplication sharedApplication] delegate];

NSManagedObjectContext *context =
[appDelegate managedObjectContext];

NSEntityDescription *entityDesc =
[NSEntityDescription entityForName:@"Device"
            inManagedObjectContext:context];

NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDesc];

NSPredicate *pred =
[NSPredicate predicateWithFormat:@"(name = %@)",
 _name.text];
[request setPredicate:pred];
NSManagedObject *matches = nil;

NSError *error;
NSArray *objects = [context executeFetchRequest:request
                                          error:&error];matches = objects[0];

    _address.text = [matches valueForKey:@"address"];
    _age.text = [matches valueForKey:@"age"];
    _company.text = [matches valueForKey:@"company"];
Run Code Online (Sandbox Code Playgroud)

现在,当我想删除和更新特定用户的数据时,我无法获取数据.

如何删除数据并更新..?

我已经浏览了这个链接 http://www.appcoda.com/core-data-tutorial-update-delete/

预先感谢

Anj*_*ani 8

您可以删除以下数据:

 NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"entityname" inManagedObjectContext:context];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userID like %@",userID];
    [fetchRequest setEntity:entity];
    [fetchRequest setPredicate:predicate];

    NSError *error;
    NSArray *items = [context executeFetchRequest:fetchRequest error:&error];

    for (NSManagedObject *managedObject in items)
    {
        [context deleteObject:managedObject];
    }
Run Code Online (Sandbox Code Playgroud)

并为更新:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"entityname" inManagedObjectContext:context];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userID like %@",userID];
    [fetchRequest setPredicate:predicate];
    [fetchRequest setFetchLimit:1];
    [fetchRequest setEntity:entity];
    NSError *error;
    NSArray *arrResult = [context executeFetchRequest:fetchRequest error:&error];
YourEntityname *entity = arrResult[0];
entity.userID = @"2"
[appdelegate saveContext];
Run Code Online (Sandbox Code Playgroud)