我试图在SWIFT2.0中实现俄语单词的自动完成,并面临以下问题。
我实现了以下代码来测试UITextChecker()的工作方式:
let textChecker = UITextChecker()
let getAvailableLanguages = UITextChecker.availableLanguages()
print(getAvailableLanguages)
let partial = "leo"
let completions = textChecker.completionsForPartialWordRange(NSRange(0..<partial.utf16.count), inString: partial,language: "en_US")
let completions2 = textChecker.guessesForWordRange(NSRange(0..<partial.utf16.count), inString: partial, language: "en_US")
print(completions)
print(completions2)此代码打印以下结果,此结果对我来说很好:
语文清单:
[ru_RU, en_CA, pt_BR, it_IT, ko_KR, nb_NO, de_DE, en_GB, sv_SE, en_AU, en_SG, es_MX, pt_PT, en_IN, fr_FR, es_ES, nl_NL, tr_TR, fi_FI, pl_PL, en_US, da_DK]completionsForPartialWordRange:
Optional([leonine, leopard, leopardess,leopardesses, leopards, leotard, leotarded, leotards])guessesForWordRange:
Optional([Leo, lei, lek, lea, led, lee, leg, let, leu, lev, lex, lao, loo, geo, cleo, oleo, lego, leto, leon])之后,我为ru_RU实现了相同的代码
let textChecker = UITextChecker()
let partial = "кош"
let completions = textChecker.completionsForPartialWordRange(NSRange(0..<partial.utf16.count), inString: partial,language: "ru_RU")
let completions2 = textChecker.guessesForWordRange(NSRange(0..<partial.utf16.count), inString: partial, language: "ru_RU")
print(completions)
print(completions2)但是completionsForPartialWordRange总是返回ru_RU的空数组
Optional([])实际结果对于"кош"至少应该是"кошка",但是有一个空数组。
尽管如此,guessesForWordRange仍然适用于ru_RU
Optional([каш, ко, кол, коб, код, кое, кож, коз, кои, кой, кок, ком, кон, коп, кор, кос, кот, коф, кою, куш, кэш, нош, шок, ковш, коуш, коша, коше, коши, кошм, кошт, кошу])我尝试使用不同的俄语单词,但我总是从completionsForPartialWordRange方法中得到空数组。我的代码是错误的,还是某个已知的苹果错误?如何用ru_RU方法获得completionsForPartialWordRange的完备性?
发布于 2016-06-29 11:04:14
如果它能帮助某人,我将从他们的错误报告服务中提供苹果的答案。
在我写信给苹果之后,我收到了以下答复:
工程已经确定您的错误报告是另一个问题的副本,并将关闭。 您的问题的原始bug报告的打开或关闭状态被复制到错误报告用户界面的黄色“复制XXXXXXXX”部分。本节显示在右侧列的bug详细视图的顶部附近,就在bug编号、标题、状态、产品和排名下面。
不幸的是,没有更多的补充资料。
更新
固定在IOS 10.1中
https://stackoverflow.com/questions/37921824
复制相似问题