Вопрос

What is the best way to delete a row of data in Core Data? I can find a lot of answers online with indexPath like this:

NSManagedObjectContext *context=[self managedObjectContext];
[context deleteObject:[self.recordarray objectAtIndex:indexPath.row]];

NSError *error=nil;
    if (![context save:&error]) {
        NSLog(@"Cant save %@ %@",error,[error localizedDescription]);
    }
    [self.recordarray removeObjectAtIndex:indexPath.row];

I don't have a Table View , I am saving data for a Custom View. I am very new to Core data, basically I want to do something like that in SQL

Delete Row with FirstColumn(Primary Key) is Equal to "ABC" 

Can someone help me and provide a link.

Это было полезно?

Решение 2

Since the data will be stored in an core data object just delete that object. Also can also refer

Delete object in Core Data

Removing a specific entry/row from Core-Data

Hope this will resolve your query.

Другие советы

Like Sqlite's "DELETE from tableName WHERE condition", you have no single step to delete MULTIPLE objects from CoreData.

In CoreData, first you have to fetch objects that has to be deleted, using NSFetchRequest and NSPredicate

NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"EntityName"];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"propertyName == %@", value];
[request setPredicate:predicate];

NSError *error = nil;
NSManagedObjectContext *managedObjectContext;//Your ManagedObjectContext;
NSArray *result = [managedObjectContext executeFetchRequest:request error:&error];

Then, you should iterate through every NSManagedObject and call deleteObject: from your NSManagedObjectContext.

if (!error && result.count > 0) {
    for(NSManagedObject *managedObject in result){
        [managedObjectContext deleteObject:managedObject];
    }

    //Save context to write to store
    [managedObjectContext save:nil];
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top