tipo deseado NSNumber tipo dado __NSCFString error

Recibo un error de datos básicos que no puedo resolver cómo solucionarlos.

Básicamente, estoy sacando todos los datos de un object en un dictionary, mostrando los datos en un formulario, y algunos campos permiten la edición, luego intentando almacenar los datos nuevamente en el object al enviarlos.

Sin embargo, al configurar todos los valores nuevos / actualizados, obtengo el error

Unacceptable type of value for attribute: property = "totalLocations"; desinetworking type = NSNumber; given type = __NSCFString; value = 7.

Aquí está el código que maneja esta propiedad en particular …

  //grab the value from the property if (myObject.totalLocations) [data setObject:myObject.totalLocations forKey:@"totalLocations"]; // store it back to the object _myObject.totalLocations = [data objectForKey:@"totalLocations"]; 

Aparte de estas dos líneas, no hay demasiado uso de la propiedad. Puede ser modificado, pero no por el usuario en esta pantalla en particular.

¿Es el tipo de totalLocations en su entidad de datos centrales Integer y es myObject.totalLocations a NSString? En caso afirmativo, debe configurar los datos centrales de esta forma:

 [data setValue:[NSNumber numberWithInteger:[myObject.totalLocations integerValue]] forKey:@"totalLocations"]; 

La forma en que establezco mis objects gestionados es así:

 - (void)insertNewPromo:(NSDictionary *)promoJson { NSManagedObjectContext *context = [self.promoFetchedResultsController managedObjectContext]; NSEntityDescription *entity = [[self.promoFetchedResultsController fetchRequest] entity]; NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context]; // Checking if inappropriate data are in the JSON to avoid some crashes. if ([[promoJson objectForKey:@"id"] isKindOfClass:[NSNull class]]) [newManagedObject setValue:nil forKey:@"id"]; else [newManagedObject setValue:[NSNumber numberWithInteger:[[promoJson objectForKey:@"id"] integerValue]] forKey:@"id"]; ... ... NSError *error = nil; if (![context save:&error]) { if (DEBUG_ON == 1) NSLog(@"Unresolved error %@, %@", error, [error userInfo]); abort(); } } 

el id object de promoJson es un NSString