可悲的是,这种方法似乎并不存在.我意识到我可以探索第三方API,但是如果可能的话,我宁愿远离它们.
我想也许我可以通过所有字母的随机排列,然后检查它们是否形成一个真实的单词,但这似乎……好吧……愚蠢.
有人知道生成随机单词的方法吗?
我也不想手动制作数千个单词的长列表,因为我担心内存错误.我想尝试学习一些语法和新方法,而不是如何导航列表.
解决方法 我的/usr/share / dict / words文件是一个符号链接到/usr/share / dict / words / web2,Webster的第二国际词典,从1934年开始.文件只有2.4mb,所以你不应该看到太多的性能命中将整个内容加载到内存中.这是我写的一个小的Swift 3.0代码片段,用于从字典文件中加载一个随机字.请记住在运行之前将文件复制到应用程序的包中.
if let wordsfilePath = Bundle.main.path(forResource: "web2",ofType: nil) { do { let wordsstring = try String(contentsOffile: wordsfilePath) let wordlines = wordsstring.components(separatedBy: .newlines) let randomline = wordlines[numericCast(arc4random_uniform(numericCast(wordlines.count)))] print(randomline) } catch { // contentsOffile throws an error print("Error: \(error)") }}
Swift 2.2:
if let wordsfilePath = NSBundle.mainBundle().pathForResource("web2",ofType: nil) { do { let wordsstring = try String(contentsOffile: wordsfilePath) let wordlines = wordsstring.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet()) let randomline = wordlines[Int(arc4random_uniform(UInt32(wordlines.count)))] print(randomline) } catch { // contentsOffile throws an error print("Error: \(error)") }}
Swift 1.2片段:
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) } }}总结
以上是内存溢出为你收集整理的ios – 在Swift中生成一个随机单词全部内容,希望文章能够帮你解决ios – 在Swift中生成一个随机单词所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)