Carico i dati da un file JSON, l'ho salvato. Lo faccio due volte ... Ho ricevuto due voci nel mio database sqlite Core Data. Anche se ho impostato nella mappatura il primaryKeyAttribute.Attributo chiave primaria RestKit
mapping.primaryKeyAttribute = @"code";
[mapping mapAttributesFromArray :mappedFields];
[[RKObjectManager sharedManager].mappingProvider setMapping:mapping forKeyPath:entityName];
mio JSON
{ "MyEntity": [{ "codice": "axv2", "dati": "contenuti"}]};
Qui il callback:
- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects {
NSLog(@"Entries loaded %d",[objects count]);
lastResult = objects;
for(MyEntity * myEntity in lastResult) {
[self saveContext];
}
}
mio soggetto sia correttamente mappato ... Ma Restkit permettono di salvare le voci duplicate con la stessa chiave primaria?
È strano, ho capito che questo attributo chiave primaria avrebbe evitato questo problema.
Significa che ogni volta che voglio salvare il contesto, devo eseguire il ciclo su ciascuna entità del contesto gestito per verificare se l'entità esiste in sqlite db? Il restkit non fornisce qualcosa? O dati principali? – Sam
Fondamentalmente, sì. Oppure, prima di creare un nuovo elemento, recuperarlo dal database. Se il recupero ritorna vuoto, crearlo, altrimenti non inserirlo nemmeno nel contesto dell'oggetto gestito. L'ho fatto in questo modo ed è abbastanza efficiente. – Mundi
Ho lo stesso problema con le duplicazioni, tuttavia il Restkit fornisce un controllo prima di inserirlo nel database, ma sembra che non stia chiamando con me (e voi) per qualche motivo. Scopri come ho "risolto" temporaneamente, finché non trovo la risposta giusta http://stackoverflow.com/questions/7799890/primarykeyattribute-not-working-restkit-core-data – mateusmaso