Aller au contenu


Photo

Introduction à CoreData - Swift 3


  • Please log in to reply
41 réponses à ce sujet

#21 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 800 messages
  • LocationParis

Posté 26 mai 2017 - 22:58

Bah oui, ça veut dire que tu as réussi à  t'inscrire, alors. La partie 2 commence effectivement en Septembre, il n'y a aucune vidéo en ligne et le forum n'est pas activé.

 

Pour le moment, c'est la partie 1 qui est intéressante pour toi. Elle est terminée depuis quelques semaines, mais tu peux quand même t'y inscrire pour regarder les vidéos, consulter les discussions sur le forum, faire les exercices proposés chaque semaine et télécharger les exercices des autres participants. J'y ai pas mal posté sous le pseudo IceDraken.


Garçon, servez-moi un Covfefe avec du lait de soja, sans OGM ..

Et faites régler la climatisation, il fait bien chaud, ici !

 

 

Éternel Novice !  :baby:

Tueur de poneys !  :(

 

Faire simple .. c'est compliqué !

Faire compliqué .. c'est simple !

 

Un MOOC (cours en ligne - dont je ne suis pas l'auteur) gratuit sur la programmation en Obj-C et en Swift 3, démarrant le 14 Mars 2017 :

https://www.edx.org/...onnex-progios1x

 

Des dizaines d'heures de tutoriels vidéo en français (je ne suis pas l'auteur) pour apprendre à développer en Obj-C et Swift : http://pagesperso-sy...don/5I452-2014/

 

 


#22 Gercofis

Gercofis

    Ecabosseur en fèves

  • Membre
  • PipPipPipPip
  • 303 messages
  • LocationCrozon l'été et Chambéry l'hivers

Posté 26 mai 2017 - 23:29

l'inscription est faite , tu utilises l'application iPad ?


Le compilateur c'est aussi bête (?/!) qu'une femme: il/elle râle d'abord, on grogne après, en fin de compte il/elle a toujours raison, de toutes façons on est obligé de céder et ça devient si bien quant il/elle est d'accord.
MacBookPro 2.6 GHz i7 8Go - iPad 3 3G 32Go - iPhone 4 et SE 16Go - en principe tout ça est a jour...

En retraite programmeur a ses heures, pas toujours très assidu, et un peu voir beaucoup fâché avec l'anglais ( un séjour correspondant est envisagé, si vous avez des plans (automne ou printemps) Je dois reconnaitre que le jeu Duolingo m'a bien fait avancer dans cette démarche .

Merci.


#23 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 800 messages
  • LocationParis

Posté 26 mai 2017 - 23:42

Non, mon MacBookPro 13 pouces avec Safari.


Garçon, servez-moi un Covfefe avec du lait de soja, sans OGM ..

Et faites régler la climatisation, il fait bien chaud, ici !

 

 

Éternel Novice !  :baby:

Tueur de poneys !  :(

 

Faire simple .. c'est compliqué !

Faire compliqué .. c'est simple !

 

Un MOOC (cours en ligne - dont je ne suis pas l'auteur) gratuit sur la programmation en Obj-C et en Swift 3, démarrant le 14 Mars 2017 :

https://www.edx.org/...onnex-progios1x

 

Des dizaines d'heures de tutoriels vidéo en français (je ne suis pas l'auteur) pour apprendre à développer en Obj-C et Swift : http://pagesperso-sy...don/5I452-2014/

 

 


#24 Gercofis

Gercofis

    Ecabosseur en fèves

  • Membre
  • PipPipPipPip
  • 303 messages
  • LocationCrozon l'été et Chambéry l'hivers

Posté 14 juin 2017 - 11:48

Pour revenir a CoreData et les TableView...

Quelle est la différence entre TableViewController et une ViewController qui reçoit une TableView...

La plupart des tutos CoreData récents utilise ViewController et non TableViewController (dans lequel on ne peut pas rajouter ce qu'on veut ?)


Le compilateur c'est aussi bête (?/!) qu'une femme: il/elle râle d'abord, on grogne après, en fin de compte il/elle a toujours raison, de toutes façons on est obligé de céder et ça devient si bien quant il/elle est d'accord.
MacBookPro 2.6 GHz i7 8Go - iPad 3 3G 32Go - iPhone 4 et SE 16Go - en principe tout ça est a jour...

En retraite programmeur a ses heures, pas toujours très assidu, et un peu voir beaucoup fâché avec l'anglais ( un séjour correspondant est envisagé, si vous avez des plans (automne ou printemps) Je dois reconnaitre que le jeu Duolingo m'a bien fait avancer dans cette démarche .

Merci.


#25 Magiic

Magiic

    Ecabosseur en fèves

  • Membre
  • PipPipPipPip
  • 359 messages
  • LocationParis

Posté 14 juin 2017 - 12:08

Avec CoreData aucun il me semble. La différence entre les 2 cas que tu cites se situe davantage sur la flexibilité de ta vue. Si tu souhaites construire une vue avec plusieurs composants UI en plus d'une tableView, un UIViewController est privilégié. UITableViewController est préférée quand tu souhaites afficher seulement une liste, qui plus est si elle doit contenir des champs de texte dès lors le système de Scroll est géré pour toi automatiquement.



#26 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 800 messages
  • LocationParis

Posté 14 juin 2017 - 12:35

Oui, je suis du même avis que Magiic sur le sujet. A une époque, les gens aimaient faire des tutos avec des UITableViewController parce que les écrans étaient petits et ne pouvaient pas contenir grand chose en dehors de la tableView. Ce n'est plus le cas de nos jours avec les iPad, les smartphones de grande taille et les applications universelles. Avec UIViewController on peut respirer à son aise.


Garçon, servez-moi un Covfefe avec du lait de soja, sans OGM ..

Et faites régler la climatisation, il fait bien chaud, ici !

 

 

Éternel Novice !  :baby:

Tueur de poneys !  :(

 

Faire simple .. c'est compliqué !

Faire compliqué .. c'est simple !

 

Un MOOC (cours en ligne - dont je ne suis pas l'auteur) gratuit sur la programmation en Obj-C et en Swift 3, démarrant le 14 Mars 2017 :

https://www.edx.org/...onnex-progios1x

 

Des dizaines d'heures de tutoriels vidéo en français (je ne suis pas l'auteur) pour apprendre à développer en Obj-C et Swift : http://pagesperso-sy...don/5I452-2014/

 

 


#27 Gercofis

Gercofis

    Ecabosseur en fèves

  • Membre
  • PipPipPipPip
  • 303 messages
  • LocationCrozon l'été et Chambéry l'hivers

Posté 14 juin 2017 - 14:15

Merci a tous les deux c'est on ne peux plus clair  :bravo!: j'ai tout compris du coup je comprends carrément mieux...


Le compilateur c'est aussi bête (?/!) qu'une femme: il/elle râle d'abord, on grogne après, en fin de compte il/elle a toujours raison, de toutes façons on est obligé de céder et ça devient si bien quant il/elle est d'accord.
MacBookPro 2.6 GHz i7 8Go - iPad 3 3G 32Go - iPhone 4 et SE 16Go - en principe tout ça est a jour...

En retraite programmeur a ses heures, pas toujours très assidu, et un peu voir beaucoup fâché avec l'anglais ( un séjour correspondant est envisagé, si vous avez des plans (automne ou printemps) Je dois reconnaitre que le jeu Duolingo m'a bien fait avancer dans cette démarche .

Merci.


#28 Gercofis

Gercofis

    Ecabosseur en fèves

  • Membre
  • PipPipPipPip
  • 303 messages
  • LocationCrozon l'été et Chambéry l'hivers

Posté 31 août 2017 - 11:30

Dans un attribut CoreData on peut préciser Décimal ?

En fait je voudrais stocker des fréquences RadioFM donc par exemple 101.4 etc...

Depuis un TextField que dois-je donc affecter a cette attribut ? S'il y a moins gourmand je peux préciser autre chose que Decimal

frequence est L'outlet TextField
_radio.frequence est l'attribut déclaré "Decimal"
if let frequ = Decimal(frequence.text!) { // Double (Decimal) est accepté
        _radio.frequence = frequ //NSDecimalNumber(frequence.text!) // mais coince ici
        }

pour le fun j'aimerais bien comprendre ?

 

a vous lire


Le compilateur c'est aussi bête (?/!) qu'une femme: il/elle râle d'abord, on grogne après, en fin de compte il/elle a toujours raison, de toutes façons on est obligé de céder et ça devient si bien quant il/elle est d'accord.
MacBookPro 2.6 GHz i7 8Go - iPad 3 3G 32Go - iPhone 4 et SE 16Go - en principe tout ça est a jour...

En retraite programmeur a ses heures, pas toujours très assidu, et un peu voir beaucoup fâché avec l'anglais ( un séjour correspondant est envisagé, si vous avez des plans (automne ou printemps) Je dois reconnaitre que le jeu Duolingo m'a bien fait avancer dans cette démarche .

Merci.


#29 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 800 messages
  • LocationParis

Posté 31 août 2017 - 11:57

Dans un attribut CoreData on peut préciser Décimal ?

En fait je voudrais stocker des fréquences RadioFM donc par exemple 101.4 etc...

Depuis un TextField que dois-je donc affecter a cette attribut ? S'il y a moins gourmand je peux préciser autre chose que Decimal

frequence est L'outlet TextField
_radio.frequence est l'attribut déclaré "Decimal"
if let frequ = Decimal(frequence.text!) { // Double (Decimal) est accepté
        _radio.frequence = frequ //NSDecimalNumber(frequence.text!) // mais coince ici
        }

pour le fun j'aimerais bien comprendre ?

 

 

 

Tu peux utiliser un attribut Float ou Double pour stocker ta fréquence, puisque ce sont des nombres à virgule.

Fichier(s) joint(s)


Garçon, servez-moi un Covfefe avec du lait de soja, sans OGM ..

Et faites régler la climatisation, il fait bien chaud, ici !

 

 

Éternel Novice !  :baby:

Tueur de poneys !  :(

 

Faire simple .. c'est compliqué !

Faire compliqué .. c'est simple !

 

Un MOOC (cours en ligne - dont je ne suis pas l'auteur) gratuit sur la programmation en Obj-C et en Swift 3, démarrant le 14 Mars 2017 :

https://www.edx.org/...onnex-progios1x

 

Des dizaines d'heures de tutoriels vidéo en français (je ne suis pas l'auteur) pour apprendre à développer en Obj-C et Swift : http://pagesperso-sy...don/5I452-2014/

 

 


#30 Lexxis

Lexxis

    Ecabosseur en fèves

  • Membre
  • PipPipPipPip
  • 419 messages

Posté 31 août 2017 - 12:25

Dans un attribut CoreData on peut préciser Décimal ?

En fait je voudrais stocker des fréquences RadioFM donc par exemple 101.4 etc...

Depuis un TextField que dois-je donc affecter a cette attribut ? S'il y a moins gourmand je peux préciser autre chose que Decimal

frequence est L'outlet TextField
_radio.frequence est l'attribut déclaré "Decimal"
if let frequ = Decimal(frequence.text!) { // Double (Decimal) est accepté
        _radio.frequence = frequ //NSDecimalNumber(frequence.text!) // mais coince ici
        }

pour le fun j'aimerais bien comprendre ?

 

a vous lire

 

Qu'entends-tu par "ca coince" ? Une erreur de compilation ? au runtime ?



#31 Joanna Carter

Joanna Carter

    Broyeur de fèves

  • Contrôleur d'arômes
  • 1 997 messages
  • LocationPlestin-les-Grèves (22)

Posté 31 août 2017 - 12:34

De mon avis, les fréquences sont comme les numéros de téléphone ; du coup, dans un String.

Il faut te demander - est-ce que je fais les calculs avec ?

#32 Gercofis

Gercofis

    Ecabosseur en fèves

  • Membre
  • PipPipPipPip
  • 303 messages
  • LocationCrozon l'été et Chambéry l'hivers

Posté 31 août 2017 - 14:05

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 ?

Fichier(s) joint(s)


Le compilateur c'est aussi bête (?/!) qu'une femme: il/elle râle d'abord, on grogne après, en fin de compte il/elle a toujours raison, de toutes façons on est obligé de céder et ça devient si bien quant il/elle est d'accord.
MacBookPro 2.6 GHz i7 8Go - iPad 3 3G 32Go - iPhone 4 et SE 16Go - en principe tout ça est a jour...

En retraite programmeur a ses heures, pas toujours très assidu, et un peu voir beaucoup fâché avec l'anglais ( un séjour correspondant est envisagé, si vous avez des plans (automne ou printemps) Je dois reconnaitre que le jeu Duolingo m'a bien fait avancer dans cette démarche .

Merci.


#33 Insou

Insou

    Ecabosseur en fèves

  • Membre
  • PipPipPipPip
  • 238 messages

Posté 31 août 2017 - 14:30

@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 ;)



#34 Gercofis

Gercofis

    Ecabosseur en fèves

  • Membre
  • PipPipPipPip
  • 303 messages
  • LocationCrozon l'été et Chambéry l'hivers

Posté 31 août 2017 - 15:48

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


Le compilateur c'est aussi bête (?/!) qu'une femme: il/elle râle d'abord, on grogne après, en fin de compte il/elle a toujours raison, de toutes façons on est obligé de céder et ça devient si bien quant il/elle est d'accord.
MacBookPro 2.6 GHz i7 8Go - iPad 3 3G 32Go - iPhone 4 et SE 16Go - en principe tout ça est a jour...

En retraite programmeur a ses heures, pas toujours très assidu, et un peu voir beaucoup fâché avec l'anglais ( un séjour correspondant est envisagé, si vous avez des plans (automne ou printemps) Je dois reconnaitre que le jeu Duolingo m'a bien fait avancer dans cette démarche .

Merci.


#35 Gercofis

Gercofis

    Ecabosseur en fèves

  • Membre
  • PipPipPipPip
  • 303 messages
  • LocationCrozon l'été et Chambéry l'hivers

Posté 31 août 2017 - 15:58

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 ?


Le compilateur c'est aussi bête (?/!) qu'une femme: il/elle râle d'abord, on grogne après, en fin de compte il/elle a toujours raison, de toutes façons on est obligé de céder et ça devient si bien quant il/elle est d'accord.
MacBookPro 2.6 GHz i7 8Go - iPad 3 3G 32Go - iPhone 4 et SE 16Go - en principe tout ça est a jour...

En retraite programmeur a ses heures, pas toujours très assidu, et un peu voir beaucoup fâché avec l'anglais ( un séjour correspondant est envisagé, si vous avez des plans (automne ou printemps) Je dois reconnaitre que le jeu Duolingo m'a bien fait avancer dans cette démarche .

Merci.


#36 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 800 messages
  • LocationParis

Posté 31 août 2017 - 16:01

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 ..


Garçon, servez-moi un Covfefe avec du lait de soja, sans OGM ..

Et faites régler la climatisation, il fait bien chaud, ici !

 

 

Éternel Novice !  :baby:

Tueur de poneys !  :(

 

Faire simple .. c'est compliqué !

Faire compliqué .. c'est simple !

 

Un MOOC (cours en ligne - dont je ne suis pas l'auteur) gratuit sur la programmation en Obj-C et en Swift 3, démarrant le 14 Mars 2017 :

https://www.edx.org/...onnex-progios1x

 

Des dizaines d'heures de tutoriels vidéo en français (je ne suis pas l'auteur) pour apprendre à développer en Obj-C et Swift : http://pagesperso-sy...don/5I452-2014/

 

 


#37 Insou

Insou

    Ecabosseur en fèves

  • Membre
  • PipPipPipPip
  • 238 messages

Posté 01 septembre 2017 - 09:00

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 :)


  • Draken aime ceci

#38 Gercofis

Gercofis

    Ecabosseur en fèves

  • Membre
  • PipPipPipPip
  • 303 messages
  • LocationCrozon l'été et Chambéry l'hivers

Posté 02 septembre 2017 - 14:24

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 !!


Le compilateur c'est aussi bête (?/!) qu'une femme: il/elle râle d'abord, on grogne après, en fin de compte il/elle a toujours raison, de toutes façons on est obligé de céder et ça devient si bien quant il/elle est d'accord.
MacBookPro 2.6 GHz i7 8Go - iPad 3 3G 32Go - iPhone 4 et SE 16Go - en principe tout ça est a jour...

En retraite programmeur a ses heures, pas toujours très assidu, et un peu voir beaucoup fâché avec l'anglais ( un séjour correspondant est envisagé, si vous avez des plans (automne ou printemps) Je dois reconnaitre que le jeu Duolingo m'a bien fait avancer dans cette démarche .

Merci.


#39 Gercofis

Gercofis

    Ecabosseur en fèves

  • Membre
  • PipPipPipPip
  • 303 messages
  • LocationCrozon l'été et Chambéry l'hivers

Posté 09 septembre 2017 - 22:16

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


Le compilateur c'est aussi bête (?/!) qu'une femme: il/elle râle d'abord, on grogne après, en fin de compte il/elle a toujours raison, de toutes façons on est obligé de céder et ça devient si bien quant il/elle est d'accord.
MacBookPro 2.6 GHz i7 8Go - iPad 3 3G 32Go - iPhone 4 et SE 16Go - en principe tout ça est a jour...

En retraite programmeur a ses heures, pas toujours très assidu, et un peu voir beaucoup fâché avec l'anglais ( un séjour correspondant est envisagé, si vous avez des plans (automne ou printemps) Je dois reconnaitre que le jeu Duolingo m'a bien fait avancer dans cette démarche .

Merci.


#40 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 800 messages
  • LocationParis

Posté 10 septembre 2017 - 15:14

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

Fichier(s) joint(s)

  • Fichier joint  codegen.jpg   64,97 Ko   0 téléchargement(s)

Garçon, servez-moi un Covfefe avec du lait de soja, sans OGM ..

Et faites régler la climatisation, il fait bien chaud, ici !

 

 

Éternel Novice !  :baby:

Tueur de poneys !  :(

 

Faire simple .. c'est compliqué !

Faire compliqué .. c'est simple !

 

Un MOOC (cours en ligne - dont je ne suis pas l'auteur) gratuit sur la programmation en Obj-C et en Swift 3, démarrant le 14 Mars 2017 :

https://www.edx.org/...onnex-progios1x

 

Des dizaines d'heures de tutoriels vidéo en français (je ne suis pas l'auteur) pour apprendre à développer en Obj-C et Swift : http://pagesperso-sy...don/5I452-2014/

 

 





0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)