Introduction à  CoreData - Swift 3

2»

Réponses

  • GercofisGercofis Membre
    août 2017 modifié #32

    Merci pour ces réponses, en cherchant bien j'ai vu que Decimal était bien plus complexe qu'il n'y parait, je vais donc partir sur un Float.

     

    @Lexxis "ça coince" au codage avec une alerte rouge... Même avec un Double ?




  • @Lexxis "ça coince" au codage avec une alerte rouge...




     


    Je pense que Lexxis voulait connaitre le message d'erreur pour mieux t'aider.. On ne peut pas le deviner ;)

  • j'ai modifié sur le post précédent

  • GercofisGercofis Membre
    août 2017 modifié #35

    Tout est rentré dans l'ordre, ne pas tenir compte des 2 derniers posts...


     


    Pendant qu'on y est comment supprime-t-on un post ?




  • Tout est rentré dans l'ordre, ne pas tenir compte des 2 derniers posts...


     


    Pendant qu'on y est comment supprime-t-on un post ?




    On demande gentiment à  la modération ..



  • Tout est rentré dans l'ordre, ne pas tenir compte des 2 derniers posts...




     


    Pense à  toujours expliqué comment tu as résolu ton soucis sur les forums, ça servira peut-être à  quelqu'un d'autre un jour :)

  • GercofisGercofis Membre
    septembre 2017 modifié #38

    Ta remarque est plus que juste... Mais bon ce ne sont que des essais...


     


    Pour le coup parfois on n'arrête pas de modifier, on teste etc... et du coup on passe a coté d'un truc (une erreur) énorme et c'est tellement gros, qu'il n'y a pas frimer  :) .


     


    Donc pendant qu'on y est comment se fait-il que l'exécution ne s'arrête pas sur un Step...



    @IBAction func buttonTapped(_ sender: UIButton) {
         let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
        
        let task = Task(context: context)
        task.name = taskTextField.text!
        // Save the data to coredata
        
        (UIApplication.shared.delegate as! AppDelegate).saveContext()
        let _ = navigationController?.popViewController(animated: true)
      }

    pourtant l'IBAction est bien appelée puisque la scène en question est bien validée, de plus les valeurs sont bien enregistées, j'ai fait un [Clean]  :(


     


    Quelques précisions supplémentaires. Ce code se situe dans le controlleur d'un Segue, l'attribute 'name' est bien enregistrée et se retrouve dans le tableau.


     


    Je suis parvenu a activer le mode Trace en la pointant avant l'arrivée sur la scène Segue en question, mais c'est tout de même curieux. En fait le retour du Segue se fait avant l'exécution du code correspondant, un peu bizarre !!


  • Cette fois-ci avec CoreData je patauge grave


    Quand on est dans le modèle le fichier xxxxx.xcdatamodeld et qu'on sélectionne une entité qu'on active l'icône "show the Data Model inspector"dans la colonne de droite. On découvre Entity Name avec le même nom que l'entité correspondante et ça se synchronise.


    Par contre juste dessous on a la partie Class ou Name peut être différent dans les exemple d'Apple ils rajoutent MO (Managed Object je suppose et si on utilise ce nom dans le code il est reconnu.


    Bref a quoi ça sert cette partie qui ne semblait pas exister avant ?


    Peut-on supposer que la classe est créée ?


    Toujours dans ce modèle si on sectionne l'item "Create NSManagedObject Subclass..." du menu Editor et qu'on valide les dialogue suivant 2 fichiers sont générés:


    xxxxMO+CoreDataClass.Swift et xxxxMO+CoreDataProperties.swift et le tout avec une quantité d'erreurs impressionnantes 


     


    Le premier génère la description succinte de la classe publique


     


    Une extension xxxx.MO{


    @nonobjc public class func....etc...


    }


    et après @NSManaged public var attribut1:String? 


    etc...


     


    en faisant un simple test sur un modèle quelconque, on visualise...


     


    A vous lire

  • DrakenDraken Membre
    septembre 2017 modifié #40


    Bref a quoi ça sert cette partie qui ne semblait pas exister avant ?


     




    Je suis novice en CoreData, mais il me semble que cela existe depuis longtemps. Cela sert à  afficher les propriétés de l'entité et modifier certains paramètres ésotériques utiles pour les spécialistes, sans intérêt pour les simples mortels comme toi et moi.


     


     




    Peut-on supposer que la classe est créée ?


     




     


    Oui


     


     




    Toujours dans ce modèle si on sectionne l'item "Create NSManagedObject Subclass..." du menu Editor et qu'on valide les dialogue suivant 2 fichiers sont générés:


    xxxxMO+CoreDataClass.Swift et xxxxMO+CoreDataProperties.swift et le tout avec une quantité d'erreurs impressionnantes 


     


    Le premier génère la description succinte de la classe publique


     


    Une extension xxxx.MO{


    @nonobjc public class func....etc...


    }


    et après @NSManaged public var attribut1:String? 


    etc...


     


    en faisant un simple test sur un modèle quelconque, on visualise...


     


    A vous lire




     


     


    Xcode crée automatiquement de lui-même la définition de la classe gérant l'entité.


    La fonction " Create NSManagedObject Subclass.. " lui demande de créer DE NOUVEAUX ENTETES DE CLASSES, entrant en conflit avec les anciens, d'où les erreurs. Pour l'utiliser, il faut désactiver la génération automatique des classes en cochant l'option :


     



     


    Codegen : Manuel/None





  • Je suis novice en CoreData, mais il me semble que cela existe depuis longtemps. Cela sert à  afficher les propriétés de l'entité et modifier certains paramètres ésotériques utiles pour les spécialistes, sans intérêt pour les simples mortels comme toi et moi.


     


     


     


    Oui


     


     


     


     


    Xcode crée automatiquement de lui-même la définition de la classe gérant l'entité.


    La fonction " Create NSManagedObject Subclass.. " lui demande de créer DE NOUVEAUX ENTETES DE CLASSES, entrant en conflit avec les anciens, d'où les erreurs. Pour l'utiliser, il faut désactiver la génération automatique des classes en cochant l'option :




     


    OK ça se comprend !


     


    Mais la classe est créée de toutes façons ?

  • DrakenDraken Membre
    septembre 2017 modifié #42


     


    Mais la classe est créée de toutes façons ?




     


    Xcode génère automatiquement la classe correspondante à  une entité CoreData tant que son argument Codegen est à  Class Definition (valeur par défaut). 


Connectez-vous ou Inscrivez-vous pour répondre.