J'essaie d'explorer le langage de programmation Swift. Je cherchais à travers l'API Swift et j'ai trouvé le Malheureusement, cette méthode ne semble pas exister. Je me rends compte que je peux explorer des API tiers, mais je préfère rester loin d'eux si possible. p>
Je pensais que je pouvais peut-être passer par des permutations aléatoires de toutes les lettres, puis vérifier si elles forment un vrai mot, mais cela semble ... bien ... stupide. p>
Quelqu'un peut-il savoir un moyen de générer un mot aléatoire? p>
Je ne veux pas non plus faire une longue liste de milliers de mots parce que je crains une erreur de mémoire. Je veux essayer d'apprendre également une syntaxe et de nouvelles méthodes, et non sur la manière de naviguer sur des listes. P> UireFerenCelibraryViewController code> J'ai trouvé la méthode qui renvoie une valeur de bool si un mot est réel ou non (
.DictionaryHasDefinitionSorM code>) et j'ai également recherché une méthode pouvant renvoyer un mot aléatoire. p>
4 Réponses :
Je vous suggère de vérifier ce projet. Un gars a déjà fait ce qui suit pour vous! P>
LoremswiftUn est un générateur lorem ipsum léger pour iOS écrit à Swift. Il prend en charge la génération de textes dans différents formats (mots, phrases, paragraphes), données diverses (noms, URL, dates, etc.) et images de placement pour iOS (UIIMAGE). Il s'agit d'une réimplémentation du projet Loremipsum écrit dans l'objectif-c. P>
blockQuote>
https://github.com/lukaskubanek/loremswiftm p>
Ce projet n'a qu'un seul fichier rapide. (~ 300 lignes)
Par conséquent, je pense que la lecture du fichier vous aidera. P>
https://github.com/lukaskubanek/loremswiftUn/blob/ Master / Sources / LoremswiftUn.swift P>
Mon Voici un petit swift 3.0 Snippet J'ai écrit pour charger un mot aléatoire à partir du fichier de dictionnaire. N'oubliez pas de copier le fichier sur le paquet de votre application avant d'exécuter. P> / USR / Share / dict / Mots Code> est un lien symbolique sur
/ USR / Share / dict / mots / web2 code>, le deuxième dictionnaire international de Webster à partir de 1934. Le fichier n'est que de 2,4 Mo, de sorte que vous ne devriez donc pas voir trop de performances de chargement du contenu en mémoire dans la mémoire.
if let wordsFilePath = NSBundle.mainBundle().pathForResource("web2", ofType: nil) {
var error: NSError?
if let wordsString = String(contentsOfFile: wordsFilePath, encoding: NSUTF8StringEncoding, error: &error) {
if error != nil {
// String(contentsOfFile: ...) failed
println("Error: \(error)")
} else {
let wordLines = wordsString.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet())
let randomLine = wordLines[Int(arc4random_uniform(UInt32(wordLines.count)))]
print(randomLine)
}
}
}
Vous vous référez au fichier code> web2 code> dactyliste dactyliste? N'importe où dans votre répertoire de projet devrait être bien, assurez-vous de la copier sur votre cible et que le fichier est répertorié dans "Copier les ressources".
Obtenez un mot de longueur aléatoire 5.
func randomWord() -> String { var x = ""; for _ in 0..<5{ let string = String(format: "%c", Int.random(in: 97..<123)) as String x+=string } return x }
Essayez ce snippet
struct RandomWordGenerator { private let words: [String] func ranged(_ range: ClosedRange<Int>) -> RandomWordGenerator { RandomWordGenerator(words: words.filter { range.contains($0.count) }) } } extension RandomWordGenerator: Sequence, IteratorProtocol { public func next() -> String? { words.randomElement() } } extension RandomWordGenerator { init() throws { let file = try String(contentsOf: URL(fileURLWithPath: "/usr/share/dict/words")) self.init(words: file.components(separatedBy: "\n")) } }
«Je ne veux pas non plus faire une longue liste de milliers de mots», vous ne savez donc pas comment faire cela, mais vous devez exclure les moyens de le faire? Comment imaginez-vous que vous pouvez choisir un aléatoire quelque chose i> si vous ne commencez pas avec une collection de cette chose? Une astuce de carte impliquant une carte aléatoire d'un pont nécessite un pont! Si je tiens la main vide et dites "Choisissez une carte, n'importe quelle carte", comment allez-vous le faire?
Eh bien, vous commenceriez à saisir des choses aléatoires autour de la pièce, vérifiez s'ils sont une carte, et s'ils ne continuent pas ... mais nous avons également éliminé cela comme une option.
Copier
/ USR / Share / dict / mots code> à partir de votre Mac au paquet de votre application et utilisez cela.
@Jal c'est très gentil!
Avoir une longue liste de mots provoquera une erreur de mémoire, non?
@Jal Je vais vérifier si votre réponse fonctionne, puis acceptez-la dans quelques jours. J'ai eu des problèmes avec mon ordinateur et cela devrait être fixé en 3 jours max. Désolé pour le retard.