Я работаю над приложением, которое берет статью (простую страницу HTML) и список терминов словаря (каждый может быть словом, фразой или даже предложением) и создает ссылку для каждого терминанаходит.Проблема в том, что для больших текстов с большим количеством терминов это занимает много времени.В настоящее время мы имеем дело с этим, сначала отображая немаркированный текст, обрабатывая ссылки в фоновом режиме и, наконец, перезагружая веб-представление по окончании обработки.Тем не менее, это может занять некоторое время, и некоторые наши пользователи не довольны этим.
В настоящее время приложение использует простой цикл в терминах, заменяя HTML.В основном:
for (int i=0; i<terms.count; i++){
NSString *term = [terms objectAtIndex:i];
NSString *replaceString = [NSString stringWithFormat:@"<a href="myUrl:\\%d>%@</a>", i, term];
htmlString = [htmlString stringByReplacingOccurrencesOfString:term
withString:replaceString
options:NSCaseInsensitiveSearch
range:NSMakeRange(0, [htmlString length] )];
}
Тем не менее, мы имеем дело с несколькими языками, поэтому существует не одна замена на термин, а двадцать!Это потому, что мы должны иметь дело с пунктуацией в начале (вверх ногами вопросительные знаки на испанском языке) и в конце каждого термина.Мы должны заменить "term"
, "term."
и "term?"
соответствующей гиперссылкой.
Есть ли более эффективный метод, который я мог бы использовать для разметки этого HTML-кода?
Iнеобходимо сохранить индекс исходного термина, чтобы его можно было найти позже, когда пользователь щелкнет ссылку.