ios – 在Swift中生成一个随机单词

ios – 在Swift中生成一个随机单词,第1张

概述我正在尝试探索 Swift编程语言.我正在搜索 Swift API,我找到了UIReferenceLibraryViewController类.如果一个单词是真的(.dictionaryHasDefinitionForTerm),我找到了返回bool值的方法,并且我还找到了一个可以返回一个随机单词的方法. 可悲的是,这种方法似乎并不存在.我意识到我可以探索第三方API,但是如果可能的话,我宁愿远离 我正在尝试探索 Swift编程语言.我正在搜索 Swift API,我找到了UIReferencelibraryVIEwController类.如果一个单词是真的(.dictionaryHasDeFinitionForTerm),我找到了返回bool值的方法,并且我还找到了一个可以返回一个随机单词的方法.

可悲的是,这种方法似乎并不存在.我意识到我可以探索第三方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中生成一个随机单词所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1077458.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存