Delete Coredata Object

I have a project that uses coredata, and I'm trying to delete from what I saved. But I keep getting this error.

An NSManagedObjectContext cannot delete objects in other contexts.

I looked what the apple said, and from what I can say, I have it right, but something else is not working. Any suggestions? thank!

for (UserNumber *info in pinNumberArray) {

        NSSet *time = [[NSSet alloc] initWithSet:info.Times];

        for (ErgTimes *ergTimes in time){

            NSMutableArray *temp = [[NSMutableArray alloc] initWithObjects:ergTimes.Twok, nil];
            NSManagedObject *eventToDelete = [temp objectAtIndex:0];
            [managedObjectContext deleteObject:eventToDelete];
        }
    }  
+3
source share
2 answers

Well, it is possible that you have your own objects, context, and threads. NSManagedObjectContextnot thread safe. To remove an object from the context, you must first transfer the object to the "context", and I assume that your managed object was extracted by another MOC. Without seeing more code, I can not say.

. for

for (ErgTimes *ergTimes in time){
    NSMutableArray *temp = [[NSMutableArray alloc] initWithObjects:ergTimes.Twok, nil];
    NSManagedObject *eventToDelete = [managedObjectContext objectWithID:[[temp objectAtIndex:0] objectID]];
    [managedObjectContext deleteObject:eventToDelete];
}

, MOC, , objectID, .

+11

NSManagedObjectContext, . : managedObjectContext . :

for (UserNumber *info in pinNumberArray) {

    NSSet *time = [[NSSet alloc] initWithSet:info.Times];

    for (ErgTimes *ergTimes in time){

        NSMutableArray *temp = [[NSMutableArray alloc] initWithObjects:ergTimes.Twok, nil];
        NSManagedObject *eventToDelete = [temp objectAtIndex:0];
        [eventToDelete.managedObjectContext deleteObject:eventToDelete];
    }
}  
0

All Articles