Swift: trie un Tableau en Ordre Alphabétique
Je suis très nouveau à rapide et Objective-C.
J'ai une table view controller dans lequel je l'ai déclaré à un dictionnaire et d'un tableau:
var parts = [:]
var partsSectionTitles: NSArray!
Dans mon viewDidLoad fonction, j'ai:
parts = [
"Part 1" : ["X:1", "X:2", "X:3"],
"Part 2" : ["X:1", "X:2"],
"Part 3" : ["X:1"]
]
var partsSectionTitles = parts.allKeys
J'ai déjà réussi cette table view controller en Objective-C, et dans le but de trier les partsSectionTitles par ordre alphabétique, j'ai utilisé:
partsSectionTitles = [[parts allKeys] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
Donc, ma question est: Comment dois-je écrire le précédent code Objective-C dans Swift? Je vous remercie d'avance pour vos réponses.
Mise à JOUR: j'ai été en mesure de résoudre le problème à l'aide de pièces et de morceaux à partir des réponses que vous les gars fourni. Donc, merci à vous! Voici ce que j'ai:
J'ai déclaré les pièces dictionnaire comme:
var parts = [String:[String]]()
qui m'a permis de fournir plusieurs valeurs pour chaque touche. Cela a été d'une grande aide.
Ensuite, j'ai été en mesure de créer le partsSectionTitles et de les trier:
partsSectionTitles = [String](parts.keys)
partsSectionTitles.sort(){ $0 < $1 }
Cela a fonctionné comme je n'ai reçu aucune erreurs.
- Vous avez été vers le bas voté pour ne pas poster ce que vous avez essayé. Je suis sûr que vous avez essayé plusieurs choses. Post ce que vous avez eu jusqu'à présent et nous pouvons vous aider à le corriger 🙂
- Si par hasard vous n'avez pas essayé quelque chose, prendre un coup d'oeil à Martinets mondial de la fonction de Tri. Vous pouvez passer partsOfNovel.clés pour que le long avec une fermeture à faire le tri.
- La Swift est Triée en fonction est un moyen facile de le faire, et vous pouvez trouver une explication à la Swift Livre de Apple. Fermetures
- Ouais, j'ai essayé quelques choses que je ne me souviens pas pour le moment. Je vais essayer de poster ce que j'ai essayé la prochaine fois que je pose une question. La baisse de vote a été inutile, mais merci... je suppose.
Vous devez vous connecter pour publier un commentaire.
Ce sujet une belle Quicksort fonctionner pour commander votre tableau de Chaînes de caractères? (Source)
D'abord créer un Tableau d'extension de décomposer le tableau donné:
Deuxième créer la fonction Quicksort de sorte que vous pouvez commander l'décomposé Tableau:
Déclarer des variables de type explicite (Dictionnaire et Tableau):
Les remplir:
Et enfin l'ordre de vos Chaînes de Tableau:
Je pense que c'est une solution sympa dans le plus pur Swift, j'espère que cela aide!
partsOfNovel
doit être déclarée de type[String : [String]]
, pas de type[String : String]
.Cela devrait répondre à votre besoin. Le tableau contient des élément de Chaîne.
var partsSectionTitles:[String] = partsOfNovel.allKeys as [String]
ne compile pas pour moi. Je reçois le message d'erreur suivant:'[String : Array<String>]' does not have a member named 'allKeys'
.NSDictionary(dictionary: partsOfNovel).allKeys
pour la coulée, OP code avar partsOfNovel = [:]
.ou vous pouvez écrire comme :
ou
Disons que vous avez le code Objective-C avec
NSDictionary
etNSArray
:Avec ce code, votre console va imprimer:
Avec Swift, vous pouvez obtenir les clés d'un
Dictionary
et les mettre dans unArray
comme ceci:Vous pouvez ensuite appliquer un tri sur ce
Array
et imprimer le résultat de ce genre:Mais tout cela peut être fait avec Swift dans une plus concis (testé avec aire de Jeux):