设备与模拟器语言方案

有谁知道为什么会这样?

在任何模拟器上都可以找到所有方案,代码如下:

NSArray *availSchemes = [NSLinguisticTagger availableTagSchemesForLanguage:@"en"]; for (NSLinguisticTagScheme scheme in availSchemes) { NSLog(@"Tag scheme %@", scheme); } 

得出以下结论:

 2018-02-13 09:12:54.066970-0500 MY_APP[79671:5737063] Tag scheme Language 2018-02-13 09:12:54.067160-0500 MY_APP[79671:5737063] Tag scheme Script 2018-02-13 09:12:54.067300-0500 MY_APP[79671:5737063] Tag scheme TokenType 2018-02-13 09:12:54.067425-0500 MY_APP[79671:5737063] Tag scheme LexicalClass 2018-02-13 09:12:54.067541-0500 MY_APP[79671:5737063] Tag scheme NameType 2018-02-13 09:12:54.067655-0500 MY_APP[79671:5737063] Tag scheme NameTypeOrLexicalClass 2018-02-13 09:12:54.067768-0500 MY_APP[79671:5737063] Tag scheme Lemma 

但是,在我的设备( iPhone 6s iOS 11.2 )上,我收到以下内容..

 2018-02-13 09:13:09.834879-0500 MY_APP[4327:313598] Tag scheme Language 2018-02-13 09:13:09.835256-0500 MY_APP[4327:313598] Tag scheme Script 2018-02-13 09:13:09.835556-0500 MY_APP[4327:313598] Tag scheme TokenType 

任何人都可以帮我解释为什么我无法访问其他方案? 特别是我希望能够将NSLinguisticTagSchemeLexicalClassNSLinguisticTagger一起使用。 目前,这个问题导致标记器将任何单词标记为(OtherWord),而不是它的真正词性。

任何帮助,将不胜感激..

UPDATE

所有物理设备都给我相同的结果 – 只有三个可用的方案……我在这里不知所措。

经过不知疲倦的研究,不眠之夜,以及三次前往病房,我发现了问题所在。 虽然解决方案绝对是穷人的解决方案,但它仍然有效。


无论出于何种原因,我的iPhone 6s iOS 11.2.5在我最初设置手机时不想安装所有可用的语言方案? 无论是那还是它决定在无聊的时候它们移除

无论如何,解决方案是……鼓滚……

卸载目标语言…然后重新安装。


我想这会“重置”语言包以重新包含这些方案。 快乐的编码

关于该主题的WWDC演示文稿表明,所有方案都支持远离所有语言。 实际上,只有以下语言支持几种方案:

  • 英语
  • 法国
  • 意大利
  • 德语
  • 葡萄牙语
  • 俄语
  • 土耳其

如果您在下面的链接页面上下载幻灯片,则可以在幻灯片136上看到此表格。

当我在我的设备上运行你的代码时,它们都会报告你在模拟器上获得的完整集合。 使用其他语言代码我得到的更少。 您是否在设备上与模拟器上检查了iOS版本?

WWDC 2017:208 – 自然语言处理和您的应用程序