Afficher un tableau avec ses rangs classés par date
nono77
Membre
j essaie de créer une petite application perso pour gérer mon retard quotidien dans mon travail
mais voilà j ai un petit soucis.
Comment faire pour ajouter une variable plusieurs fois dans un tableau mais avec des valeurs différentes
ex: mercredi 18 juillet 2018 12 18
jeudi 19 juillet 2018 10 6
vendredi 20 juillet 2018 25 8
Pour ensuite les afficher dans un tableview du plus récent au plus ancien par rapport a la date
pour l instant j arrive seulement a enregistrer une entrée dans mon tableau et a chaque nouvel essai cela efface l ancienne entrée
ce qui fait que je suis toujours avec une ligne a mon tableau ainsi que dans mon tableview
je songe a m orienté vers le tricot sans doute plus facile....
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Qu'est-ce que tu rentres exactement comme données ? Normalement avec un tableau, il n'a pas d'unicité sur les éléments.
Pourrait-on voir un peu de code ?
Je ne sais pas si tu effaces ton Array à chaque fois, si tu utilises un Set, un Dictionary.
De plus, j'espère que tu enregistres dans ton tableau des (NS)Date objects et pas des Strings.
j enregistre dans ce tableau des Strings
Pourquoi quand tu pourrait utiliser et trier les dates?
pour ajouter des données j ai créer cette fonction
func ajouterChanson() {
chansons = Details
details = Details(date: dateDuJour!, retard: retardGeneneral!, equipe: valeurEquipe!)
chansons.append(details!)
}
N'utilises pas les ! Comme ça !!!
Tu fais
chansons = Details
. Je ne sais pas ce qu'estDetails
, du coup, la valeur dechansons
est modifiée. Je pense donc que tu "reset" à chaque foischansons
, d'où le fait que tu n'aies à la fin que le résultat dechansons.append(details!)
chansons est un tableau de type Details
Tu dois utiliser un objet de type Date pour gérer tes dates. Il est spécialement conçu pour ça, et permet toutes sortes de manipulations très utiles (tri, comparaison, conversion des dates dans différentes langues, etc..). Il permet aussi d'entrer une date en utilisant un composant graphique comme PickerDate.
J'ai fait une petite démo à l'arrache, avec un pickerView, et deux boutons. La présentation est moche parce j'ai juste posé les objets graphiques sur l'écran, sans définir de contraintes Storyboard.
J'utilise l'opérateur de tri de Swift pour classer les Dates.
Il permet de trier un tableau d'objets selon une condition définie entre les { }. La formule que j'utilise indique que l'élément de rang n (symbolisé par $0) doit avoir une date inférieure à celle de l'élément n+1 (symbolisé par $1).
merci draken
je vais étudier cela de près et essayer de comprendre tout ça
merci encore
Je me rend que j'ai oublié d'expliquer le fonctionnement de la petite démo :