Je souhaite mettre à jour plusieurs attributs d'une entité à l'aide de swift, mais je n'ai trouvé aucun didacticiel pour la gérer. J'ai réussi à mettre à jour seul attribut d'une entité avec le code ci-dessous:Comment mettre à jour plusieurs attributs de données de base dans swift 2
//Insert Function
func Insert(dbname : String , attributeName : String , value : String) {
let check_empty = entityIsEmpty(dbname)
if(check_empty != true){
let saveData = NSEntityDescription.insertNewObjectForEntityForName(dbname, inManagedObjectContext: managedContext)
// add our data
saveData.setValue(value, forKey: attributeName)
//2
do {
try managedContext.save()
//3
check_DB.append(saveData)
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
}
//check_empty
}else{
//Update procedure
let fetchRequest = NSFetchRequest(entityName: dbname)
do {
let fetchedEntities = try self.managedContext.executeFetchRequest(fetchRequest) as! [SettingInfo]
fetchedEntities.first?.attributeName = value
// ... Update additional properties with new values
} catch {
// Do something in response to error condition
}
do {
try self.managedContext.save()
} catch {
// Do something in response to error condition
}
}
}
mais comment puis-je mettre à jour plusieurs attributs d'une entité? par exemple: Nom de l'entité est: dbname
Nom d'attribut est: attribute
_name et la valeur de l'attribut que je veux mettre à jour est: value
MISE À JOUR: message d'erreur:
Ma structure de base de données:
actualisateurs les autres attributs de la même manière que vous avez fait le premier. Quel est le problème? Au lieu de récupérer l'objet, mettre à jour et enregistrer dans une fonction, avoir une fonction qui retourne l'objet, mettre à jour tous les attributs et ensuite l'enregistrer dans une autre fonction – Paulw11
mon problème est que cette fonction ne reconnaît pas dbname et ses attributs, comme vous peut voir qu'ils sont des arguments de fonction, si je les mets constants cela fonctionne. en ce moment avec le code ci-dessus je reçois erreur de nom de DB n'est pas un type et il ne reconnaît pas le nom de l'attribut – anonymox
@ Paulw11 vous proposez d'avoir 3 fonctions pour faire le travail? chacun fait une seule opération? – anonymox