我无法从我的设备调用函数,但我可以从我的模拟器中执行此操作

时间:2017-12-12 16:17:34

标签: ios swift nslinguistictagger

我正在创建一个简单的语言标记器应用程序,它需要用户输入并提供标记和标记。它在模拟器中工作正常但是当我在我的设备中运行它时,它不会做同样的事情。

这是我用过的代码:

 @IBAction func callML(_ sender: Any) {

    let entryString = self.entryField.text!
    print(entryString)
    self.view .endEditing(true)
    let schemes = NSLinguisticTagger.availableTagSchemes(forLanguage: "en-IN")
    let options: NSLinguisticTagger.Options = [
        .omitWhitespace, .omitPunctuation, .joinNames
    ]

    let tagger = NSLinguisticTagger(tagSchemes: schemes, options: Int(options.rawValue))
    tagger.string = entryString

    let rangeOfEntireEntryString = NSRange(location: 0, length: entryString.utf16.count)

    tagger.enumerateTags(
        in: rangeOfEntireEntryString,
        scheme: .nameTypeOrLexicalClass,
        options: options)
    { (tag, tokenRange, sentenceRange, _) in
        guard let tag = tag?.rawValue else { return }
        let token = (entryString as NSString).substring(with: 
tokenRange)
        print("[\(tag)] \(token)")
        if tag.count==12{
            print("This is for personal name")
            print(token)
            name=token
        }
    }
}

当我在控制台中打印标签和标记时,它只提供普通文本而不是我从模拟器获得的文本。

输入文字字段:与男人见面

使用模拟器时在控制台中输出: [Verb] meet [Determiner] the [Noun] man

使用设备时在控制台中输出:Meet the Man

0 个答案:

没有答案