0

我正在尝试在Swift 2.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])

猜测词范围:

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方法中得到空数组。我的代码有错误还是某些已知的 Apple 错误?如何完成ru_RUwithcompletionsForPartialWordRange方法?

4

1 回答 1

0

如果它可以帮助某人,我将从他们的错误报告服务中提供 Apple 答案。

在我写信给 Apple 后,我收到了以下答复:

工程部门已确定您的错误报告与另一个问题重复,将被关闭。

您的问题被复制到的原始错误报告的打开或关闭状态显示在错误报告器用户界面的黄色“XXXXXXXX 重复”部分。此部分出现在右列的错误详细信息视图顶部附近,就在错误编号、标题、状态、产品和排名下方。

不幸的是,没有更多的额外信息。

更新

已在 IOS 10.1 中修复

于 2016-06-29T11:04:14.817 回答