Supprimer les Données de Coredata Swift
Dans mon tableViewController j'ai le texte suivant. Et je suis d'essayer d'obtenir la suppression d'un élément de travail.
var myData: Array<AnyObject> = []
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellID: NSString = "Cell"
var Cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier(cellID) as UITableViewCell
var data: NSManagedObject = myData[indexPath.row] as NSManagedObject
Cell.textLabel?.text = data.valueForKeyPath("Name") as? String
return Cell
}
D'essayer et de supprimer ce que j'ai.
override func tableView(tableView: (UITableView!), commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == .Delete {
let cellID: NSString = "Cell"
var Cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier(cellID) as UITableViewCell
var data: NSManagedObject = myData[indexPath.row] as NSManagedObject
data.delete(0)
//Delete the row from the data source
//tableView!.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
} else if editingStyle == .Insert {
//Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}
}
Vous devez vous connecter pour publier un commentaire.
Mise à jour sur mon codage d'un problème avec l'exécution d'une suppression de données rapide et coredata. Ce code j'ai fini avec qui travaillé.
MODIFIER ci-Dessus pour Swift 2.2 et Xcode 7.3.1
Aussi besoin de ces deux lignes de code à corriger.
Ci-dessous est le code pour supprimer le point et de recharger les données.
Pour compléter la réponse de zisoft:
Vous devez enregistrer votre contexte, après la suppression d'un objet.
Donc la bonne façon serait:
Note de vérifier d'abord s'il y a des règles de suppression (si vous avez des objets liés)
Pas sûr de ce que votre question est, mais vous devez supprimer l'objet de la NSManagedObjectContext instance. Donc, dans votre
commitEditingStyle
fonction:Pour Xcode 8 et Swift 3.0. Si nous avons besoin de SUPPRIMER toutes les données à partir de n'importe quel Tableau que nous devrions utiliser le code:
LoadStorage fichier de Classe: il prend en charge iOS 9 et iOS 10 ci-dessus.
Que de Créer DatabaseMaster de classe et de rendre la fonction:
Address_master est sous-classe de nom de fichier.
veuillez définir
laisser localStr = localStorage()
dans DatabasMaster fichier de Classe.
Aucune des réponses ci-dessus m'a aidé dans le cas que je suis en utilisant la Base de Données avec un FetchedResultsController pour une tableView. En tant que tel, ici, est mon de mise en œuvre pour gérer la suppression ci-dessous. Mon exemple utilise un exemple simple, supposons que vous souhaitez supprimer une photo de la glisser vers la gauche sur une table et en sélectionnant la valeur par défaut de l'option de suppression.
Swift 3 Solution pour FetchedResultsController Implementaitons
D'abord ajouter cette méthode du délégué pour l'affichage de la table pour permettre l'édition lorsque vous balayez la ligne.
Une fois que vous avez fait cela, assurez-vous que le fetchedResultsController a son délégué ensemble de votre contrôleur et de mise en œuvre de ces méthodes.
Le secret ici est d'obtenir l'accès à l'objet via le fetchedResultsController.méthode de l'objet
De cette façon, vous pouvez exécuter
qui est intelligent à propos de la suppression NSManagedObjects.
Infos supplémentaires Liées à mon Application (Seulement lire ci-dessous si vous avez besoin de plus de détails)
---------------------------------------------------------------------------
Image+CoreDataProperties.swift
Photos+CoreDataClass.swift
Le fichier ci-dessous est mon coreData pile gestionnaire.
DataController.swift
C'est là que ma méthode d'enregistrement est pour la sauvegarde du contexte.
AppDelegate.swift