Was wäre der beste Weg, um mein Core Data-Schema mit einer Remote-API zu synchronisieren, die JSON bereitstellt? Im Moment durchlaufe ich jedes Wörterbuch in der JSON-Antwort und überprüfe Core-Daten, um zu sehen, ob die API-ID existiert.Was ist die effizienteste Methode zum Synchronisieren von Core Data mit der JSON-API?
Das funktioniert gut, aber jetzt müssen nur noch lokale Objekte gelöscht werden, die sich nicht auf dem Server befinden. Hier ist ein Beispiel für meine JSON-Daten:
[
{
"id":1234,
"name":"My first object",
"description":"This is a long string with lots of information"
},
{
"id":1235,
"name":"My second object",
"description":"This is a long string with lots of information"
}
]
Derzeit ist die einzige Art, wie ich denke, kann dies zu erreichen, ist in etwa wie folgt:
NSArray *jsonData = // Convert json data to array using NSJSONSerialization
NSInteger fetchedCount = _fetchedResultsController.fetchedObjects.count;
if (fetchedCount != jsonData.count) {
for (int i = 0; i < fetchedCount; i++) {
NSManagedObject *object = [_fetchedResultsController objectAtIndexPath: [NSIndexPath indexPathForItem:i
inSection:0]];
NSNumber *idNumber = object.apiID;
BOOL shouldDelete = YES;
for (NSDictionary *jsonDict in jsonData) {
if ([jsonDict objectForKey:@"id"] == idNumber) {
shouldDelete = NO;
}
}
if (shouldDelete) {
// Delete object.
}
}
}
denke ich, dass massiv ineffizient sein wird, wenn der JSON-Array enthält viele Objekte.
Danke für die Antwort und vor allem den Link Efficiently Import Data. Das ist ein guter. – squarefrog
@squarefrog Gern geschehen. Upvote auch wenn Sie wollen;) Frohes neues Jahr. Prost. –