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