J'ai donc ouvert le même projet et cliquer sur le bouton pour avoir le code à gauche et le graphisme à droite, sauf que j'obtiens ceci :
Et j'ai beau cherché, je ne trouve pas comment l'afficher comme dans le cours. Je n'ai que "Live View" et pas "Timeline", sinon j'ai Manuel mais c'est tout...
Je suis sur Xcode 10, j'ai essayé sur Xcode 9, même problème.
Quelqu'un pourrait m'aider ?
EDIT : C'est bon, après exécution ça s'affiche bien ! Désolé je débute :s
EDIT2 : J'aurai dû aller plus loin dans la vidéo, Ambroise parle justement de la Live View...
Et en plus, depuis que Xcode s'est màj, je n'arrive plus à accéder aux live views. Et j'ai perdu mes repères avec l'assistant (il n'y a plus les mêmes boutons)... Il me dit "The playground couldn't continue running because the playground source didn't compile successfully".
Pour LoupBinal, ça veut dire quoi “ça ne fonctionne pas” ? Ça ne compile pas ? Dans ce cas quel est le message d’erreur ? Le résultat attendu n’est pas celui obtenu ? Dans ce cas quel est le résultat attendu et celui obtenu ? (Même si je me doute bien du résultat obtenu dans le cas présent. C’est un réflexe à avoir. Ça ne marche pas, ça ne veut rien dire. Ou en tout cas rien d’utile)
Pour kaguya :
meme remarque que pour LoupBinal si tu dis que tu as le même problème.
pour la perte de repère je suis désolé mais... peux pas faire grand chose.
la perte du live views (Je l’ai jamais utilisé je sais même pas ce que c’est) ce n’est pas à cause du code qui ne compile pas ? Si ça ne compile pas, il ne t’indique pas la ligne qui ne compile pas avec un message ?
Pour LoupBinal, ça veut dire quoi “ça ne fonctionne pas” ? Ça ne compile pas ? Dans ce cas quel est le message d’erreur ? Le résultat attendu n’est pas celui obtenu ? Dans ce cas quel est le résultat attendu et celui obtenu ? (Même si je me doute bien du résultat obtenu dans le cas présent. C’est un réflexe à avoir. Ça ne marche pas, ça ne veut rien dire. Ou en tout cas rien d’utile)
Pour kaguya :
meme remarque que pour LoupBinal si tu dis que tu as le même problème.
pour la perte de repère je suis désolé mais... peux pas faire grand chose.
la perte du live views (Je l’ai jamais utilisé je sais même pas ce que c’est) ce n’est pas à cause du code qui ne compile pas ? Si ça ne compile pas, il ne t’indique pas la ligne qui ne compile pas avec un message ?
En faite, quand je prend le code en initialisant une variable avant(dans la fonction) pour "super.sePresenter()" et que je l'affiche dans le return, l'exercice se valide mais de ma façon cité plus haut il se valide pas.
Kaguya123 a écrit:
Hi !
Même question que LoupBina...
Et en plus, depuis que Xcode s'est màj, je n'arrive plus à accéder aux live views. Et j'ai perdu mes repères avec l'assistant (il n'y a plus les mêmes boutons)... Il me dit "The playground couldn't continue running because the playground source didn't compile successfully".
Si une âme charitable passe dans le coin....
Merci
Vérifie qu'il est bien cocher dans le bouton au niveau de l'assistant puis pour qu'il s'affiche lance ton programme en cliquant sur la petite lecture à gauche du code.
Je connais pas les conditions par coeur les conditions de validation de l'exercice mais je pense piger ton problème
override func sePresenter(): String {
super.sePresenter()
return " et je suis développeur !"
}
Ta méthode sePresenter retourne un String. J'imagine que derrière pour l'utiliser tu feras print(sePresenter()) et dans la console ça t'affichera " et je suis développeur !"
En effet, ton super.sePresenter() est appelé mais tu ne fais strictement rien du résultat. (Xcode devrait même te générer un warning dans ce cas). Du coup tu ne pourras pas afficher le "Je m'appelle Xavier" (ou que sais-je).
J'imagine que ce que tu souhaites réellement faire c'est :
override func sePresenter(): String {
return "\(super.sePresenter()) et je suis développeur !"
}
Ah d'accord je comprend mieux, je n'ai pas fait le test sur Xcode, je suis resté sur la console en ligne.
Merci.
J'ai aussi un petit problème, j'ai vraiment du mal à bien comprendre la 2nd partie du cours même en regardant plusieurs fois les vidéos et le texte écrit.
Il y a t'il un moyen de régler ce problème ? Enfin des sites qui font des petits exercices pour s'exercer sur la POO par exemple ?
@LoupBina1 : Je pourrais t'expliquer à peu près n'importe quoi (je pense) mais il va falloir être un peu plus explicite sur ce que tu ne comprends pas. Avec si possible des exemples. Je ne connais pas le cours, je ne l'ai pas fait. Donc quand tu me parles de la "seconde partie" j'ai aucune idée de ce dont tu parles
@FlorenceIsaac : Ta fonction est en dehors du scope de la classe. Ainsi elle n'a pas accès à ses variables membres. Comme je le disais, il s'agit d'une fonction globale, self n'existe pas.
class Personne {
var nom: String
func seMarie() {
print(nom) // pas besoin de mettre self puisqu'il n'y a pas d'ambiguïté.
}
}
Ce que tu as fait :
class Personne { var nom : String }
func seMarie() {}
seMarie n'est pas une fonction de la classe Personne elle ne peut donc pas accéder à nom
Si j'extrapole on pourrait faire ça :
class Personne { var nom: String }
func seMarie(_ personne: Personne) {
print(personne.nom s'est marié)
}
seMarie(Personne(nom: "Hubert))
class Bus {
var driverName: String
var seats = 20
var occupiedSeats = 0 {
willSet {
print("Il y a du mouvement dans le bus...")
}
didSet {
if oldValue < occupiedSeats {
print("\(occupiedSeats - oldValue) personnes viennent de monter !")
} else {
print("\(oldValue - occupiedSeats) personnes viennent de descendre !")
}
}
}
var numberOfWheel = 4
var description: String {
return "Je suis un bus conduit par \(driverName) avec \(occupiedSeats) personnes dedans."
}
init(driverName: String){
self.driverName = driverName
}
func moveForward(){
canvas.moveBusForward()
}
func stop(){
canvas.stopBus()
}
func drive(road: Road){
for _ in road.sections{
moveForward()
}
}
}
class SchoolBus: Bus {
var schoolName = ""
override func drive(road: Road) {
for section in road.sections {
switch section.type {
case .plain:
moveForward()
case .home:
if shouldPickChildren() {
pickChildren(from: section)
stop()
}
moveForward()
case .school:
dropChildren()
stop()
}
}
}
private func shouldPickChildren() -> Bool {
return occupiedSeats < seats
}
private func pickChildren(from roadSection: RoadSection) {
if let section = roadSection as? HomeRoadSection {
occupiedSeats += section.children
}
}
private func dropChildren() {
occupiedSeats = 0
}
}
enum RoadSectionType {
case plain
case home
case school
}
class RoadSection {
var type: RoadSectionType
init(type: RoadSectionType) {
self.type = type
switch type {
case .plain:
canvas.createRoadSection()
canvas.moveBusForward()
case .home:
canvas.createHomeRoadSection()
case .school:
canvas.createSchoolRoadSection()
}
}
convenience init() {
self.init(type: .plain)
}
}
class HomeRoadSection: RoadSection {
var children: Int
init(children: Int) {
self.children = children
super.init(type: .home)
}
convenience init(){
self.init(children: 2)
}
}
class SchoolRoadSection: RoadSection {
init() {
super.init(type: .school)
}
}
class Road {
var sections = [RoadSection]()
static let maxLength = 77
static func createStraightRoad() -> Road {
return Road(length: 30)
}
static func createRoadToSchool() -> Road {
let road = Road(length: 0)
for i in 0..<30 {
if i%7 == 1 {
road.sections.append(HomeRoadSection(children: 2))
} else {
road.sections.append(RoadSection(type: .plain))
}
}
road.sections.append(SchoolRoadSection())
return road
}
init(length: Int) {
var length = length
if length > Road.maxLength {
length = Road.maxLength
}
for _ in 0..<length {
self.sections.append(RoadSection(type: .plain))
}
}
}
Road.createStraightRoad()
RoadSection(type: .plain)
RoadSection(type: .home)
RoadSection(type: .school)
Je sais pas si le code final était ça, j'ai fait en sorte de faire juste avancer le bus mais j'ai pas d'autre maison de créé, pour tant la fonction du cours est présente.
Je ne sais pas trop ce qu'est canvas mais ça ne me semble pas trop étonnant.
Ligne 154 : ça retourne un truc mais tu ne l'utilises pas. Donc ça sert à rien.
Ligne 156 : ça semble dessiner une home sur le canvas
Ligne 155 et 157 : ça dessine autre chose qu'une home.
Donc de ce que je comprend t'as 1 maison, 1 school, et 1 route sans rien.
J'ai un problème sur le chapitre "Concevez vos premiers objet". J'ai télécharger le projet, j'ai lancé SchoolBusPlayground.playground comme dit dans le cours. Le programme se lance mais je n'ai pas d'assistant ou TimeLine. (Je sais pas si il y à une différence) J'ai cherché à l'afficher, mais je ne le trouve pas. Dans le cours le bouton assistant est visible, mais dans Xcode 11 il faut dérouler un menu si je me souviens bien. (J'ai eu le coup dans le premier cours.) J'ai déroulé tous les menus, cherché un peu partout. Le seul truc que j'ai trouvé c'est "Reset Assistant Selection" dans "View" mais il est grisé.
Merci de votre aide
EDIT : J'ai oublié de run le projet . Ça fonctionne mieux XD
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Je sais pas si le code final était ça, j'ai fait en sorte de faire juste avancer le bus mais j'ai pas d'autre maison de créé, pour tant la fonction du cours est présente.