Я не могу вызвать функцию с моего устройства, но я могу сделать это с моего симулятора
Я делаю простое приложение для лингвистических тэгеров, в котором оно принимает пользовательский ввод и дает тэги и токены Он отлично работает в симуляторе, но когда я запускаю его на своем устройстве, он не делает то же самое.
Это код, который я использовал:
@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