Note: Document en cours de rédaction
…
Action – Construisons la classe ‘Personnage’ (dans le contrôleur de la scène principale)
struct TrackedString { private(set) var numberOfEdits = 0 var value: String = "" { didSet { numberOfEdits++ } } }
// Introduction aux classes sous swift import UIKit class ViewController: UIViewController { class Personnage { // Par convention, en swift, le nom des types commencent par une lettre majuscule. var nom:String = "" var image:UIImage = UIImage() var force:Int = 0 var compagnons = [String]() func description() -> String { return "================================\n" + "Personnage: \(nom)\n" + "force: \(force)\n" + "--------------------------------\n" + "Compagnons: \n\n" + "\(compagnons)\n" + "================================\n" } // description } // Personnage // Point d'entrée de l'application override func viewDidLoad() { super.viewDidLoad() var fred = Personnage() fred.nom = "Fred Cailloux" fred.force = 99 println( "Description du personnage fred:\n\( fred.description() )" ) } // viewDidLoad } // ViewController
Console:
Description du personnage fred: ================================ Personnage: Fred Cailloux force: 99 ——————————– Compagnons: [] ================================
// Introduction aux classes sous swift import UIKit class ViewController: UIViewController { class Personnage { var nom:String var force:Int var image:UIImage var compagnons:[String] init(nom:String, force:Int) { self.nom = nom // self.nom permet de distinguer la propriété du paramètre self.force = force self.image = UIImage() self.compagnons = [String]() } // init func description() -> String { return "================================\n" + "Personnage: \(nom)\n" + "force: \(force)\n" + "--------------------------------\n" + "Compagnons: \n\n" + "\(compagnons)\n" + "================================\n" } // description } // Personnage // Point d'entrée de l'application override func viewDidLoad() { super.viewDidLoad() var perso = Personnage(nom:"Tor LeBoss", force:314) println( "Description du personnage:\n\( perso.description() )" ) } // viewDidLoad } // ViewController
Console:
Description du personnage: ================================ Personnage: Tor LeBoss force: 314 ——————————– Compagnons: [] ================================
Action – Ajouter un nouveau groupe nommé ‘Mes classes’ au projet Atl+Cmd+N. Action – Ajouter un nouveau fichier de type ‘Swift file’ au projet Cmd+N Action – Déplacer la classe Personnage du contrôleur de la scène vers le fichier Personnage.swift Note: Xcode ne va pas reconnaitre la classe de type UIImage. Son prototype est définit dans UIKit. Il suffit d’ajouter « ‘import UIKit » au début du fichier pour corriger le problème. Contenu du fichier ‘Personnage.swift’
// Personnage.swift import Foundation import UIKit class Personnage { var nom:String var force:Int var image:UIImage var compagnons:[String] init(nom:String, force:Int) { self.nom = nom // self.nom permet de distinguer la propriété du paramètre self.force = force self.image = UIImage() self.compagnons = [String]() } // init func description() -> String { return "================================\n" + "Personnage: \(nom)\n" + "force: \(force)\n" + "--------------------------------\n" + "Compagnons: \n\n" + "\(compagnons)\n" + "================================\n" } // description } // Personnage
Faisons les modifications suivantes au contrôleur :
override func viewDidLoad() { super.viewDidLoad() var perso = Personnage(nom:"Tor LeBoss", force:314) let nomPerso = perso.nom println( "Le nom du personnage est \(nomPerso)") } // viewDidLoad
Testons l’application