Я слышал, что проверка орфографии Apple для UITextView поддерживает регистрацию того, что вы вводите в отдельных приложениях. У меня есть безопасное приложение, где проверка орфографии является полезной функцией, однако я не хочу, чтобы новые слова регистрировались где-то вне моего приложения. Может ли кто-нибудь обратиться к справочному документу Apple или техническому описанию того, какая информация захватывается проверкой орфографии, и где она также захвачена?
Какая информация хранится в iOS Spell Checker?
Ответ 1
Я не знаю окончательно, но используя fseventer, изучение слова "aple" в TextEdit сохраняет это слово до ~/Library/Spelling/LocalDictionary
, Игнорирование слова, похоже, не изменяет файловую систему вообще, и действительно, если документ закрыт и не сохранен, и новый документ с этим ранее игнорируемым словом открывается, он больше не игнорируется. Это согласуется с +learnWord:
как метод класса, а -ignoreWord:
- методом экземпляра. Поэтому для обеспечения безопасности вы, вероятно, никогда не сможете называть +learnWord:
и вместо этого иметь свой собственный сервер для постоянного/безопасного хранения списка игнорируемых слов.
Ответ 2
Не уверен, что это очень помогает, но вы можете выполнить проверку орфографии вручную с помощью класса UITextChecker, который позволяет установить список игнорируемых слов:
- (void)setIgnoredWords:(NSArray *)words
Подробнее здесь: https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITextChecker_Class/Reference/Reference.html
Вы также можете проверить, изучено ли слово с помощью:
+ (BOOL)hasLearnedWord:(NSString *)word