Какую информацию хранит проверка орфографии iOS?

Я слышал, что средство проверки орфографии Apple для UITextView поддерживает некоторую регистрацию того, что вы вводите в отдельных приложениях. У меня есть безопасное приложение, в котором проверка орфографии является полезной функцией, однако я не хочу, чтобы новые слова регистрировались где-то за пределами моего приложения. Может ли кто-нибудь отослать меня к справочному документу Apple или техническому описанию того, какая информация фиксируется при проверке орфографии и где она также фиксируется?


person BadPirate    schedule 26.01.2012    source источник


Ответы (2)


Я не знаю точно, но используя fseventer, изучая слово " aple "в TextEdit сохраняет это слово в ~/Library/Spelling/LocalDictionary. Игнорирование слова, похоже, вообще не изменяет файловую систему, и действительно, если документ закрыт и не сохранен, и открывается новый документ с этим ранее проигнорированным словом, он больше не игнорируется. Это согласуется с тем, что +learnWord: является методом класса, а -ignoreWord: является методом экземпляра. Так что в целях безопасности вы, вероятно, могли бы просто никогда не вызывать +learnWord:, а вместо этого иметь свой собственный бэкэнд для постоянного / безопасного хранения списка игнорируемых слов.

person btown    schedule 14.02.2012
comment
Интересно ... есть ли у guessesForWordRange: inString: language: или completionsForPartialWordRange: inString: language: какие-либо действия FS? В противном случае можно было бы написать свой собственный подкласс UITextView, который проверяет орфографию без обучения. (моя настоящая цель) - person BadPirate; 15.02.2012

Не уверен, что это сильно помогает, но вы можете выполнить проверку орфографии вручную с помощью класса UITextChecker, который позволяет установить список игнорируемых слов:

- (void)setIgnoredWords:(NSArray *)words

Подробнее здесь: https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITextChecker_Class/Reference/Reference.html.

Вы также можете проверить, было ли выучено слово, с помощью:

+ (BOOL)hasLearnedWord:(NSString *)word
person danielbeard    schedule 08.02.2012
comment
Здесь есть кое-что, но можно ли автоматически принимать все слова с ошибками с помощью UITextChecker? - person SimplyKiwi; 14.02.2012
comment
Я вижу, но говорю, что определенное слово в UITextField написано с ошибкой, например, вместо яблока оно написано aple. Если я вызову learnWord (NSSString *), это автоматически изменит его на яблоко? - person SimplyKiwi; 14.02.2012
comment
Хорошая информация, но вопрос был больше о том, где хранится информация, которую собирает яблоко, и когда она хранится. - person BadPirate; 15.02.2012
comment
вы можете отслеживать все слова, которые вы выучили, и отучать их, когда приложение закрывается, и повторно выучивать их, когда приложение открывается. - person Jacob White; 28.04.2017