我试图在SWIFT3.2的macOS项目中使用macOS。
这段代码在Swift 4中运行良好
let tagger = NSLinguisticTagger(tagSchemes: [.nameType], options: 0) // edited但是,给出了错误:
类型'String‘没有成员'nameType’//编辑

在Swift 3.2项目中。我试着遵循旧的NSLinguisticTagger教程,但我找不到“.name”部分的替代品。是否可以修复此问题,或者我必须将项目更新为Swift 4?
NSHipster NSLinguisticTagger 2012教程
发布于 2018-01-02 04:02:34
首先,我要道歉,我首先写了一个答案,但没有确认我的设置是真的正确。下面的描述是根据我认为正确的设置更新的。(Xcode 9.2,目标Swift版本设置为3.2。改变项目Swift版本不会影响目标Swift版本,哦,我的羞耻.
当您想使用旧的Swift版本时,一些Swift友好的包装器类型是不可用的,API和常量是用简单的规则从Objective世界导入的。在这种情况下,您需要用这样的规则重新解释引用的Objective版本。
正如您在上面链接的文章中所看到的,NSLinguisticTagScheme只是String的一个类型,常量被命名为NSLinguisticTagSchemeNameType,就像在您的问题的链接中的文章中一样。它们是按旧Swift版本进口的。
因此,这是在Swift 3.2中编译的:
let tagger = NSLinguisticTagger(tagSchemes: [NSLinguisticTagSchemeNameType], options: 0)(不过,我还是强烈建议你改用Swift 4。因为苹果的官方推荐信是基于Swift的最新版本,所以它是Swift 4。)
https://stackoverflow.com/questions/48055117
复制相似问题