Aller au contenu


Photo

[Udemy - Swift 3] On en parle ?


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

#1 Gercofis

Gercofis

    Ecabosseur en fèves

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

Posté 18 mai 2017 - 16:58

Je suis en train de suivre ces cours que ne trouve pas si mal que ça, j'en suis a la leçon 66 en train de me battre avec Core Data... Au milieu de l'exercice ListeTodo après quelques problèmes tout est revenu dans l'ordre. J'avoue trouvé que Sandy navigue un peu vite et sans beaucoup d'explications d'un fichier a l'autre... Mais bon généralement je me fais ma petite application a moi même personnellement en utilisant l'exercice...

 

J'ai tout même quelques questions:

 

L'utilité des ponctuations réclamées pas Xcode a qui Sandy obéit sans vraiment d'explications.

 

Déjà les ponctuations:

 

"?" je crois comprend que ça correspond a une variable optionnelle donc affectée ou non ?

 

"!" correspond a la valeur incluse dans la variable ou la constante en question ? dans quel cas doit-on l'utiliser éventuellement ou obligatoirement ?

 

"as" doit probablement correspondre au type de valeur attendue ??? j'avoue patauger.

 

la test "do","try","catch" le do{.../...} doit indique le début d'une fonction de teste ?

try lance le teste ? par contre dans un do il semble possible qu'il y ait plusieurs "try"

et le "catch" est appelé en cas d'erreur ?

 

Un site qui résumerait bien cette fonction ?


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.


#2 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 597 messages
  • LocationParis

Posté 18 mai 2017 - 18:05

Tu parles de quels cours, là ? Sandy Ludosky, une formatrice plutôt active, en a  développé 3 en français traitant de Swift, sur Udemy :

 

- Les fondamentaux de Swift 3 - Formation complète (4,5 heures de vidéos)

- Cours complet développeur iOS 9 - Créez 18 Applications (19 heures de vidéos)

- Cours complet iOS10 & Swift 3  - Créez 15 applications (21 heures de vidéos) - je l'ai acheté celui-ci

 

 

 

 

"!" correspond a la valeur incluse dans la variable ou la constante en question ? dans quel cas doit-on l'utiliser éventuellement ou obligatoirement ?

T'es fou de poser des questions pareils. Joanna vas se jeter sur toi et t'étrangler avec une fourchette ! Ex-Ali t'aurais piétiné avec un troupeau de poneys !

 

La bonne réponse est NE JAMAIS UTILISER !, NE PAS PENSER A !, JAMAIS, JAMAIS, JAMAIS ... 


  • Joanna Carter aime ceci

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/

 

 


#3 zoc

zoc

    Broyeur de fèves

  • Artisan chocolatier
  • PipPipPipPipPipPip
  • 1 520 messages
  • LocationAntibes, France

Posté 18 mai 2017 - 18:07

Un site qui résumerait bien cette fonction ?

Le manuel de référence du langage disponible gratuitement sur iTunes ? :)

#4 Larme

Larme

    Broyeur de fèves

  • Artisan chocolatier
  • PipPipPipPipPipPip
  • 1 949 messages
  • LocationParis

Posté 18 mai 2017 - 19:41

Je vais être un peu direct mais, tu poses des questions basiques de Swift, vraiment basiques.

Je vais passer le ? et le !, car ne faisant pas de Swift, je ne sais jamais ce que cela veut dire.

Mais le as est un cast.

Le try/catch/do, cela se fait dans d'autres languages. Et c'est notamment avec ces mécanismes que Swift (depuis la 2.3 je crois) gère les NSError (qu'on met en &error en Objective-C).

 

Le reste, c'est CoreData, et c'est un sujet complexe. Je recommanderais donc d'étudier plus en détails les bases du Swift avant de te lancer dans CoreData.


Tant que vous avez des dents, mangez des pommes. Tant que vous avez de l'argent, croquez la Pomme.

#5 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 597 messages
  • LocationParis

Posté 18 mai 2017 - 20:02

 

 

"?" je crois comprend que ça correspond a une variable optionnelle donc affectée ou non ?

 

Le symbole "?" est affiché par Xcode pour rappeler au développer qu'il utilise une variable optionnelle, qu'elle soit affectée ou non.

 

Exemple : je crée une application simpliste  ne contenant pas grand chose :

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

Un ViewController vide et une vue vide .. le commencement de tout.

 

J'ai envie que le fond soit en bleu, alors j'ajoute une instruction.

 

 

import UIKit

 

class ViewController: UIViewController {

 

    override func viewDidLoad() {

        super.viewDidLoad()

        

        self.view.backgroundColor = UIColor.cyan

        

    }

}

 

 

Magique, je suis dieu ! J'ai créé un micro-univers et il est bleu !

 

Je peux placer des vues sur la vue principale et les faire vivre. Les dieux aiment toujours avoir un numéro 6 à surveiller, alors j'en crée un :

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        self.view.backgroundColor = UIColor.cyan
        
        let rect = CGRect(x: 100, y: 100, width: 100, height: 100)
        
        // création de numéro 6
        let numero6 = UIView(frame: rect)
        self.view.addSubview(numero6)
        
        numero6.backgroundColor = UIColor.blue
        
    }
}

La variable numero6 contient l'adresse de la vue, ce qui permet d'y accéder facilement pour modifier son état.

numero6.backgroundColor = UIColor.blue

On peut agir sur toutes les sous-vues de la vue principale en les stockant dans des variables. Mais il est également possible de leurs associer un numéro d'identification avec la propriété .tag.

numero6.tag = 6

Pour retrouver numero6 j'ai juste besoin de demander à la vue principale un lien vers la vue secondaire contenant le tag 6.

let fugitif = self.view.viewWithTag(6)

Pour colorier numéro6 en rouge, il faut modifier sa propriété .backgroundColor.

fugitif.backgroundColor = UIColor.red

Sauf que Xcode n'est pas d'accord avec cette syntaxe et modifie automatiquement le code en ajoutant un "?" après le nom de la vue.

fugitif?.backgroundColor = UIColor.red

Pourquoi ? Parce que la fonction viewWithTag() retourne une UIView optionnelle (UIView?). Il n'est pas certain qu'il existe une vue secondaire dans la vue principale, avec le .tag 6. L'opération peut échouer, donc iOS retourne une valeur optionnelle.

 

Ecrire une valeur dans une variable optionnelle nulle, c'est la catastrophe assurée et un plantage immédiat. C'est pourquoi Xcode a l'intelligence d'ajouter un "?" après le nom de la variable. C'est une syntaxe qui signifie :

 

- si fugitif contient un objet de type UIView on modifie sa propriété .backgroundColor

- si fugitif contient la valeur NIL on ne fait rien, il ne se passe pas de catastrophe.

 

Le "?" est un mécanisme de sécurité, qui a aussi l'avantage de rappeler visuellement au développeur que fugitif est une variable optionnelle.

 

Si Sandy n'en parle pas, c'est qu'elle doit considérer cela comme acquit. Parce que c'est vraiment la base..


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/

 

 


#6 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 597 messages
  • LocationParis

Posté 18 mai 2017 - 20:27

 

 

"!" correspond a la valeur incluse dans la variable ou la constante en question ? dans quel cas doit-on l'utiliser éventuellement ou obligatoirement ?

Comme je le disais plus haut, on ne doit JAMAIS utiliser !. C'est dangereux ce truc et surtout plantogéne. 

 

Cela correspond au contenu de la valeur, en PRESUMANT QU'ELLE EXISTE, ce qui n'est pas toujours le cas.

 

Je reprend mon exemple précédent, en modifiant le "?" par un "!" parce je SAIS que numéro6 est là, et sera toujours là.

let fugitif = self.view.viewWithTag(6)
fugitif!.backgroundColor = UIColor.red

Je compile. Xcode ne bronche pas. J'exécute, ça marche encore et encore. 

Et puis un jour, pour une raison ou une autre, il n'y a plus de vue tagée 6. Et l'application se crache en beauté sur la ligne :

fugitif!.backgroundColor = UIColor.red

IL NE FAUT JAMAIS UTILISER !, MEME SI LE COMPILATEUR LE PROPOSE !!

 

La meilleure manière d'utiliser une variable optionnelle est d'en créer une version temporaire non-optionnelle, avec if let :

        let fugitif = self.view.viewWithTag(6)
        // ICI fugitif est une valeur optionnelle pouvant contenir NIL
        if let fugitif = fugitif {
            // ICI fugitif est une valeur non-optionnelle 
            // contenant forcément quelque chose
            // On peut l'utiliser sans risque
            // ATTENTION c'est une variable temporaire n'existant
            // qu'entre les { } du if let
            fugitif.backgroundColor = UIColor.red
        }

Si la valeur est NIL, if let n'exécute pas les instructions comprises entre les { }, donc pas de risque de plantage ..

Si la valeur n'est pas NIL, if let crée une version non-optionnelle temporaire de la valeur qu'on peut utiliser normalement, sans ajouter de !. Que du bonheur ..


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/

 

 


#7 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 597 messages
  • LocationParis

Posté 18 mai 2017 - 21:41

 

 

"as" doit probablement correspondre au type de valeur attendue  ??? j'avoue patauger.

a

as est un opérateur de casting permettant de transformer le type d'objet.

 

Je reprend mon exemple et je crée un label portant le numéro 42.

a

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        self.view.backgroundColor = UIColor.cyan
        
        let rect = CGRect(x: 100, y: 100, width: 100, height: 100)
        
        let label = UILabel(frame: rect)
        label.tag = 42
        self.view.addSubview(label)
                
    }
}

a

Si je veux modifier son contenu, ma première idée est de le chercher à partir de son tag 42 et d'écrire quelque chose dans sa propriété .text.

a

// Identification Label par tag
let label42 = self.view.viewWithTag(42)
label42.text = "Hello !"

a

Sauf que Xcode refuse avec énergie, indiquant que label42 ne possède pas de propriété .text.

 

Et il a raison ! La fonction viewWithTag retourne l'objet UIView contenant le tag 42. C'est un UILabel, mais viewWithTag() ne la connaît que sous forme d'un UIView. C'est un problème courant quand on utilise un framework manipulant des objets construits sur une hiérarchie d'héritage. Seul le type de base (UIView) est connu, et non les types dérivés (UILabel, UIImage, UIButton, UISlider, etc ..). 

 

Il faut caster le UIView en UILabel pour l'utiliser. 

 

On pourrais penser qu'il faut utiliser cette syntaxe :

a

let label42 = self.view.viewWithTag(42) as UILabel

a

Mais Xcode n'en veut pas, disant qu'il est impossible de convertir un UIView? en un UILabel. A la place il propose d'ajouter un ! :

a

let label42 = self.view.viewWithTag(42) as! UILabel

a

Et ça marche .. Pourtant c'est une connerie. Xcode est parfois un sacré couillon !

 

Il suffit de changer la valeur 42 par 41 pour voir arriver les ennuis. L'opérateur "as!" ne tient pas plus compte de la valeur NIL que l'opérateur "!". C'est le plantage assuré s'il n'existe pas de vue secondaire avec le .tag 41.

 

Pour éviter la catastrophe il faut utiliser as? qui génère une valeur optionnelle, même si Xcode "oublie" de proposer cette syntaxe.

a

let label42 = self.view.viewWithTag(42) as? UILabel

a

        // Identification Label par tag
        let label42 = self.view.viewWithTag(42) as? UILabel
        // Si le label existe on peut l'utiliser
        if let label = label42 {
            // On peut manipuler le label normalement ici
            label.text = "Mon texte"
        }


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/

 

 


#8 Joanna Carter

Joanna Carter

    Broyeur de fèves

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

Posté 18 mai 2017 - 22:46

a

        // Identification Label par tag
        let label42 = self.view.viewWithTag(42) as? UILabel
        // Si le label existe on peut l'utiliser
        if let label = label42 {
            // On peut manipuler le label normalement ici
            label.text = "Mon texte"
        }

 

Ou, plus facile que ça :

  if let label42 = self.view.viewWithTag(42) as? UILabel
  {
    label42.text = "Mon texte"
  }


#9 Gercofis

Gercofis

    Ecabosseur en fèves

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

Posté 18 mai 2017 - 22:47

Tu parles de quels cours, là ? Sandy Ludosky, une formatrice plutôt active, en a  développé 3 en français traitant de Swift, sur Udemy :

.../...

- Cours complet iOS10 & Swift 3  - Créez 15 applications (21 heures de vidéos) - je l'ai acheté celui-ci

.../...

 

Nous avons donc la même, un peu logique d'utiliser la dernière...

Merci pour toutes tes explications sur ! et ? je devrai les relire quand même.

Par contre pourquoi Xcode oblige toujours a rajouter ça si c'est si plantogène ?

 

 

Je vais être un peu direct mais, tu poses des questions basiques de Swift, vraiment basiques.

Je vais passer le ? et le !, car ne faisant pas de Swift, je ne sais jamais ce que cela veut dire.

Mais le as est un cast.

Le try/catch/do, cela se fait dans d'autres languages. Et c'est notamment avec ces mécanismes que Swift (depuis la 2.3 je crois) gère les NSError (qu'on met en &error en Objective-C).

 

Le reste, c'est CoreData, et c'est un sujet complexe. Je recommanderais donc d'étudier plus en détails les bases du Swift avant de te lancer dans CoreData.

 

Merci pour cette réponse ! Souvent les choses hyper basiques comme celles-ci (semble-t-il) le sont tellement que finalement personne n'en parle pensant que tout le monde le sait...

 

Core Data en assez complet mais pour tout mes petits projets je dois pratiquement l'utiliser tout le temps, donc je fais et refais les tutoriels, sans pour autant en utiliser les options les plus pointues. Mais bon les choses évoluent et c'est tout de même assez facile de faire évoluer une Application d'autant que si je me souviens bien Core Data va géré la version précédente ?


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.


#10 Joanna Carter

Joanna Carter

    Broyeur de fèves

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

Posté 18 mai 2017 - 22:48

Oh, et ne pas utiliser les tags comme ça. C'est plus facile de créer les @IBOutlet sur le ViewController et les connecter.



#11 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 597 messages
  • LocationParis

Posté 19 mai 2017 - 00:20

Oh, et ne pas utiliser les tags comme ça. C'est plus facile de créer les @IBOutlet sur le ViewController et les connecter.

 

C'est clair. Mais dans le cas présent, cela donne un exemple simple à comprendre.


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/

 

 


#12 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 597 messages
  • LocationParis

Posté 19 mai 2017 - 00:27

 

Nous avons donc la même, un peu logique d'utiliser la dernière...

Ou alors t'es radin. Parce que moi j'ai acheté cette formation un peu au hasard, uniquement parce qu'elle était en solde ..

 

 

Merci pour toutes tes explications sur ! et ? je devrai les relire quand même.

Oui, tu devrais ..

 

 

Par contre pourquoi Xcode oblige toujours a rajouter ça si c'est si plantogène ?

Alors ça, mystère .. Ils ont peut-être laissé ça de coté pour Swift 4.


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/

 

 


#13 Gercofis

Gercofis

    Ecabosseur en fèves

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

Posté 19 mai 2017 - 09:16

 

T'es fou de poser des questions pareils. Joanna vas se jeter sur toi et t'étrangler avec une fourchette ! Ex-Ali t'aurais piétiné avec un troupeau de poneys !

 

La bonne réponse est NE JAMAIS UTILISER !, NE PAS PENSER A !, JAMAIS, JAMAIS, JAMAIS ... 

 

 

Ok moi je veux bien mais Xcode l'impose ne serait-ce déjà que pour les Outlets, j'ai tenté de supprimer le "!" il refuse grave !!


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.


#14 Joanna Carter

Joanna Carter

    Broyeur de fèves

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

Posté 19 mai 2017 - 09:55

Ok moi je veux bien mais Xcode l'impose ne serait-ce déjà que pour les Outlets, j'ai tenté de supprimer le "!" il refuse grave !!

 

Ça c'est un cas spécial. Il est attendu que les outlets seront obligatoirement connectés est, du coup, valides. En plus, ayant les ! sur les outlets empêche le compilateur de continuer à dire que les vars doivent être initialisés, après que tu les as ajouté mais avant que tu les aies connecté.



#15 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 597 messages
  • LocationParis

Posté 19 mai 2017 - 09:59

Oui, c'est impossible de s'en passer avec les Outlets. C'est le seul cas où c'est vraiment nécessaire.

 

Xcode postule qu'un objet graphique créé avec Storyboard existe forcément.


  • Joanna Carter aime ceci

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/

 

 


#16 Joanna Carter

Joanna Carter

    Broyeur de fèves

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

Posté 19 mai 2017 - 10:07

À part des outlets, il faut dire que le compilateur propose souvent les ! comme solution; un conseil sur lequel il faut bien réfléchir.

 

Le seul temps que je peux imaginer les permettre, c'est dans le code après que l'on a déjà vérifié que la valeur ne soit bien pas nil.

 

Mais c'est toujours préférable d'utiliser les "if let x =" ou les "guard let x =".


  • mbritto aime ceci

#17 Gercofis

Gercofis

    Ecabosseur en fèves

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

Posté 19 mai 2017 - 22:03

Le reste, c'est CoreData, et c'est un sujet complexe. Je recommanderais donc d'étudier plus en détails les bases du Swift avant de te lancer dans CoreData.

 

Je me souviens avoir réalisé un tuto il y a quelques temps déjà une "Trésorerie" opérationnelle avec Core Data et Zéro ligne de code...

 

J'espérais retrouver la même chose....


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.


#18 Céroce

Céroce

    Mouleur de chocolats

  • Contrôleur d'arômes
  • 5 206 messages
  • LocationSaint-Leu-d'Esserent / France

Posté 20 mai 2017 - 13:21

Je me souviens avoir réalisé un tuto il y a quelques temps déjà une "Trésorerie" opérationnelle avec Core Data et Zéro ligne de code...

Ce qui est bien avec le marketing d'Apple, c'est qu'il couvre tous les aspects de leur business, même les outils de programmation.
RenaudPradenc.com Je suis développeur iOS & Mac indépendant.

#19 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 597 messages
  • LocationParis

Posté 27 mai 2017 - 09:43

A partir de ce post, la conversion a divergé vers l'utilisation de CoreData avec Swift. J'ai demandé à la modération de séparer le fil du post en deux sections. Voici le lien pour accéder aux autres posts : 

 

http://forum.cocoaca...redata-swift-3/


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/

 

 


#20 Gercofis

Gercofis

    Ecabosseur en fèves

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

Posté 29 mai 2017 - 10:05

pendant que nous sommes revenus sur le sujet initial quelques questions (basiques même):

 

1°) - L'utilisation de underscore "_" ou avec un espace "_ ", déjà Xcode le met d'office avec les Outlets ou Action et pourquoi après l'avoir mit dans les paramètres de la fonction on en est dispensé après ? J'ai l'impression de "Sandy" suit les doléances d'Xcode et ça lui apparaît évident, mais toujours pas d'explications !!

"

2°) - Dans les remarques elle utilise "//MARK .... " Je suppose que c'est pour faire apparaitre ces remarques comme une sorte de titre quand on active le PopUp correspondant ? Mais comment fait-on pour faire apparaître ces titres justement ?

 

3°) - L'utilisation de "in" comme dans "fetchTodos("") { (array, arrayData) in " ?

 

fetchTodos("") { (array, arrayData) l'explication du ("") ?


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.





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

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