Deleting from Core Data

No comments on Deleting from Core Data

Written by

in

Deleting objects from Core Data should not be recognized as deleting rows from SQLite table. It is like deleting objects from Object Graph. This is an example of deleting all rows for the current file number. I retrieve all NSManagedObject objects and delete them in cycle.

<br />
+ (BOOL)deleteScrollPositionsForFileNumber:(NSInteger)fileNumber {<br />
    BOOL success;<br />
    useDelegate<br />
    NSManagedObjectContext *context = appDelegate.managedObjectContext;<br />
    if (context == nil) {<br />
        NSLog(@”Error: No context”);<br />
        success = NO;<br />
        return success;<br />
    }</p>
<p>    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];<br />
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@”fileNumber == %d”, fileNumber];<br />
    NSEntityDescription *entity = [NSEntityDescription entityForName:@”ScrollPosition” inManagedObjectContext:context];<br />
    [fetchRequest setEntity:entity];<br />
    [fetchRequest setPredicate:predicate];</p>
<p>    NSError *error = nil;<br />
    NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];<br />
    NSLog(@”Number of deleted objects: %d”, [fetchedObjects count]);<br />
    for (NSManagedObject *object in fetchedObjects) {<br />
        [context deleteObject:object];<br />
    }<br />
    success = YES;<br />
    return success;<br />
}<br />

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *