2013-04-11 14 views
13

come eliminare le modifiche CoreData apportate a un'istanza di NSManagedObject quando la richiesta POST/PUT di questo oggetto non riesce in RKObjectManager?Come scartare le modifiche CoreData in un oggetto quando RKObjectManager non è riuscito a pubblicare l'oggetto

NSManagedObject *object = ...; 
[object setValue:@"test" forKey: @"test"]; 
[[RKObjectManager sharedManager] postObject:object 
           parameters:nil 
            success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { NSLog(@"success, nothing to do"); } 
            failure:^(RKObjectRequestOperation *operation, NSError *error) { 
    // I want to discard changes made to object here 
} 

UPDATE: RestKit 0.20

risposta

38

Non so niente di RKObjectManager, ma al fine di annullare le modifiche a esempio NSManagedObject si potrebbe chiamare:

[object.managedObjectContext refreshObject:object mergeChanges:NO]

Ciò scarta tutti cambia e trasforma l'oggetto in difetto.

see here

+0

grazie Dan, che ha funzionato! –

+0

molto utile grazie – Max

0

Swift soluzione:

import CoreData 

extension NSManagedObject { 
    func cancelChanges() { 
     managedObjectContext?.refresh(self, mergeChanges: false) 
    } 
} 

Usando:

object.cancelChanges() 
Problemi correlati