J'ai vérifié, et du coup j'ai même deleter mon slider et mon stepper, je les ai recréer, puis reliés à nouveau, et toujours la même erreur...
Edit : je pensais que le problème venait de l'alimentation de ma variable valSlider.value, j'ai donc mis la ligne en commentaire et j'ai toujours le même souci !
Et si je mets tout ce qu'il y a dans ma fonction incrementeStepper en commentaire ça buggue toujours !
ça doit donc venir du fonctionnement du stepper mais je n'arrive pas à trouver pourquoi ??
Merci pour les précisions, j'ai regardé un peu le fonctionnement des breakpoint, ça peut effectivement être utile.
Par contre je viens de recevoir les corrigés de l'exercice sur la gestion de l'animation et j'ai un peu les boules, ça va du 7/7 avec pour commentaire "impec" à un 4/7 avec pour simple commentaire "voila", et pour finir un 0/7 avec le commentaire suivant : "pas envie"...
D'une ça me plombe ma moyenne et ça m'empêche d'atteindre la limite pour valider le cours, de deux si il y a des personnes qui n'ont pas envie de jouer le jeu y'a t-il un moyen de les signaler ??
ça s'est très bien passé sur mes 2 premiers cours mais là j'avoue que je suis carrément déçu.
Bah disons que suivre un tuto c'est plus pour toi meme, pas pour avoir une note ou un diplome... Un recruteur renseigné sait qu'un diplome d'open classroom vaut pas grand chose (no offense guys...)
Tu peux toujours demander a un admin si tu ressent une injustice, mais je garantie rien !
Tutoriels sur GameplayKit, SceneKit (iOS 3D game engine), ARKit (iOS réalité augmentée) en cours d'écriture
MaximeBlache, j'ai exactement le même problème que toi.... et j'ai même l'impression que nous avons eu le mêmes correcteurs
J'i envoyé un mail à openclassrooms pour faire remettre en correction l'exercice...
Et même si les diplômes valent ce qu'ils valent, mon entreprise me finance les formations sous réserve que j'ai les diplômes donc franchement les boules... ans parlé que les correcteurs ne prennent, pour certains, même pas la peine de lire les commentaires que l'on met
petite question sur iOS mais pas totalement en rapport avec le mooc :
je fais une petite appli de géolocalisation incluant un MKMapView
Je voudrais intercepter le swipe sur la carte pour activer des fonctionnalités. Hors le swipe permet déjà le déplacement sur la carte et du coup j'ai l'impression de le GestureReconizer n'est pas appliqué. Quelqu'un connait-il une solution pour garder le déplacement, tout en passant dans la fonction déclarée dans le GestureReconizer ?
Dans le viewDidLoad :
//mapview setup to show user location
map.delegate = self
map.showsUserLocation = true
map.userTrackingMode = .followWithHeading
map.mapType = .hybrid
map.addGestureRecognizer(UISwipeGestureRecognizer(target: map, action: #selector(swipe)))
Notamment les deux méthodes : regionWillChangeAnimated et regionDidChangeAnimated
Merci je vais regarder
Je viens de faire l'essai, et ça ne fait pas ce qu'il me faut.
en effet, le code est exécuté lorsque je zoomes (double clic ou avec 2 doigts) alors que ce qu'il me faut c'est vraiment du déplacement de la carte par l'utilisateur :/
Désolé je suis compliqué
- Edité par VincentMourareau 25 avril 2017 à 11:07:20
je reviens vers vous pour un problème dans le chapitre concernant les tableview.
J'ai ma 2ème section ("informations") qui ne s'affiche pas (ni le titre, ni la ligne), ça marche nickel pour la section "get some help".
J'utilise le code suivant :
import UIKit
class Parametres : UIViewController , UITableViewDelegate , UITableViewDataSource {
//Nombre de sections en tout
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 2
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
switch section {
case 0: return 2 //Deux items dans la premiere section
case 1: return 1 //Un item dans la deuxieme
default: return 0
}
}
//Titres des en-têtes de chaque section
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
//On récupère le numéro de section concerné
switch section {
case 0: return "Get some help"
case 1: return "Informations"
default: return ""
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
//On crée une cellule basique
let cell = UITableViewCell(style: .default, reuseIdentifier: "basic")
//On va lui attribuer un texte en function de sa place
switch indexPath.section {
case 0:
switch indexPath.row {
case 0: cell.textLabel?.text = "Contact us"
break
case 1: cell.textLabel?.text = "Visit our Website"
break
default:
break
}
case 1: cell.textLabel?.text = "Get more infos"
break
default:
break
}
return cell
}
}
J'ai lu, relu, re-relu mon code, j'ai trifouillé dans l'interface builder, j'ai tenté de passer en mode paysage pour voir si la section n'était pas cachée sur un côté mais rien...je sèche, ça me rend fou
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 2
}
par :
func numberOfSections(in tableView: UITableView) -> Int {
return 2
}
Ceci dit,
Tu ne devrais pas mettre de View Controller directement dans ton IB. Tu devrais mettre un ViewController et un tableview à l'intérieur pour être plus flexible. Tu devrais pas mettre les fonctions de tes delegates et les fonctions du ViewController ensemble. Tu ne devrais pas non plus mettre des "flat" return (je viens d'inventer le terme. Je parle des return 2). Et tu ne devrais pas non plus construire ton truc au fur et à mesure.
Pour résumé, tu devrais faire comme ça :
class Parameters : UIViewController {
@IBOutlet weak var tableView : UITableView!
let headers = ["Get Some Help", "Informations"]
let cellsContent = [["Contact us", "Visit our website"], ["Get more infos"]]
func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = selfz
}
}
extension Parameters : UITableViewDelegate, UITableViewDataSource {
override func numberOfSections(in tableView: UITableView) -> Int {
return headers.count
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return cellsContent[section].count
}
override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return header[section]
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
//Identifier à définir dans le storyboard lorsqu'on mettra la cell "prototype" dans le tableview
let cell = UITableViewCell(style: .default, reuseIdentifier: "basic")
cell.textLabel?.text = cellsContent[indexPath.section][indexPath.row]
return cell
}
}
J'ai écrit ce code quasiment sur openclassrooms donc il peut y avoir des erreur de typo. Suite à ça, idéalement, tu mets les strings contenus dans les array dans un fichier de string.
Je comprend bien que tu débutes et que ça fait beaucoup d'un coup, mais c'était important pour moi de préciser tout ça (puisque tu ne le trouveras certainement pas dans le cours d'OC)
je suis débutant et je développe une petite application.
L'application que je suis en train de préparer fonctionne bien à partir du moment où l'utilisateur rempli les paramètres dans un viewcontroller dédié mais si il ne le fait pas et qu'il va dans sur la deuxième page, l'appli plante car les paramètres sont vides... normal...
Je voudrais donc créer une fonction avec un bouton sur la page 1 qui vérifie que les paramètres ont été remplis dans la page 2 "paramètres", c'est à dire si les 3 uitextfield ont été rempli. si c'est rempli, le bouton permet d'accéder à la page 3 où il y a les fonction de calculs sinon j'aimerais faire apparaitre un avertissement pour remplir les paramètres...
et çà je ne sais pas faire, comment vérifier si les cases dans paramètres sont remplis et comment faire apparaitre une fenêtre si ce n'est pas le cas...
merci de vous intéresser à mon problème qui je suis sur va vous paraitre facile mais je ne connais pas bien les fonctions mettre en place...
J'ai créer trois pages : une page d'accueil où il y a 1 bouton "correction" qui amène à la page 2 de calcul automatique et une page 3 pour les paramètres...
Dans cette page 3, j'ai 3 uitextfield à remplir pour que mes calculs fonctionnent... Malheureusement à la 1ere utilisation, si l'utilisateur ne remplit pas les champs et qu'il clique sur correction, l'application plante.
Je voudrais donc que quand on appuie sur "correction", il vérifie que les champs de la page paramètres ont été rempli sans quoi un label apparait pour demander à l'utilisateur de remplir les paramètres. Vous comprenez ?
J'ai pris le parti de vérifier si les valeurs sauvegardées étaient non nul avec ce code là :
C'est pas vraiment ce que j'appelle un bout de code. Je voulais savoir ce qui fait planter l'application (nil unwrapped ? Par exemple). En fait, c'est compliqué de t'aiguiller sans savoir précisément ce que tu as utilisé comme code.
Le code que tu as montré est complètement dégueulasse. T'as trouvé ça sur internet ?
oui je suis d'accord avec toi... non j'ai rien pompé sur internet, c'était mon intervention pure et simple... lol
en fait dans mon uiview (page d'accueil), il n'y a pas de code car ce n'est que 2 boutons qui envoie vers les deux autres pages.
j'ai essayé de taper une fonction qui va me permettre de vérifier si mes valeurs sauvegardées sont non nul, si c´est le cas, je ferai un lien vers la page 2 sinoN j'enverrai vers text label qui indiquera qu'il faut regarder les parametre...
Voici ce que cela donne et l'erreur au chargement :
J'y vois un peu plus clair. Déjà ton code de verification() est beaucoup mieux que celui que tu avais donné un peu avant. Quatre nouvelles questions :
1) ça n'a rien à voir avec ton problème, mais puisque tu save des Strings, pourquoi ne pas utiliser sauvchamps1.string(forKey: "CHAMP1") ?
2 ) Es-tu sûr que ton code ne marche pas ? Il a l'air correct pour moi. As-tu mis des breakpoint ou ajouter des prints pour suivre l'éxécution de ton programme ? J'en aurais mis au moins un dans le if et un autre le else pour comprendre ce qui se passe (par ailleurs, clique sur le petit rectangle en bas à droite pour afficher la console)
3) Comment as-tu binder tes segue ?
4) ça plante au chargement ou quand tu cliques sur le bouton ?
merci pour ton précieux retour sur mon problème ! ça marche, j'imagine que c'était un problème de version de swift ??
Effectivement. Le cours que tu suis est fait en 2.3 il me semble. La version actuelle est la 3.
Pour le reste j'ai bien créé un controller avec un table view à l'intérieur. Je ne comprends donc pas ta remarque ?
Au temps pour moi dans ce cas. J'ai cru, comme je ne voyais pas de ViewDidLoad ou de tableview. D'ailleurs je me rend compte que j'ai fait une erreur : je voulais parler de tableviewcontroller qu'il fallait éviter
× 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.