ios - 在 iOS 中删除和更新核心数据中的数据

标签 ios objective-c core-data

大家好,我是 iOS Core Data 的新手,我已经实现了 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

同样,我能够获取并显示这些文本字段中的数据。

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"];

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

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

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

提前致谢

最佳答案

您可以删除如下数据:

 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];
    }

和更新:

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];

关于ios - 在 iOS 中删除和更新核心数据中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38458195/

相关文章:

html - 如何使用html显示存储在核心数据数据库中的jpeg图像

iphone - 使用 NSPredicate 对 NSArray 进行排序,然后存储在一个新数组中

ios - 在 Swift 中获取轨道的元数据

ios - 如何使用 Objective C 获取 Tableview 选择的单元格 UILabels 值?

objective-c - 是ThreadedCoreData示例(来自Apple)在主线程上创建NSManagedObjectContext吗?

ios - 核心数据 - 检查是否为 null - iOS

iphone - 在 Xcode 中以编程方式按下 UITabBar 按钮

iphone - 有未命名的部分或手动附加关系以避免这种情况?

ios - 当应用程序终止并在 iOS 中再次启动时,NSNotificationCenter 不会触发

ios - 每当我在任何按钮(即 UISegmentedControl 按钮)外单击时,按钮也会被单击。谁能告诉我为什么会这样?