Я создаю интерактивную книгу для изучения языков.В нем есть чтение, викторина и простая игра.Содержимое каждой главы представляет собой файл HTML.Книга позволяет пользователю узнать около 300 слов, которые существуют в тексте.Слово Earch заключалось в ссылку, подобную этой: word , когда пользователь касается ссылки, появляется модальное представление с переводом и информацией об этом слове.
Thisкод, который я использую для получения ссылки:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
// currentWord is the word in the link
self.currentWord = [[request URL] lastPathComponent];
// okToCatchLinks is a BOOL that I use to avoid showing the modalview when the page
// is loaded for the first time.
if (okToCatchLinks){
NSLog(@"Ok to catch links!");
WordViewController *viewController = [[WordViewController alloc] initWithNibName:@"WordViewController" bundle:nil]
// I did my homework creating the delegate protocol to dismiss the modal view.
viewController.delegate = self;
// This is a label in the modalview showing the word in the HTML link.
viewController.labelTitle = self.currentWord;
// Create a Navigation controller to add the "DONE" dismiss button
UINavigationController *navController = [[UINavigationController alloc]
initWithRootViewController:viewController];
navController.modalPresentationStyle = UIModalPresentationFormSheet;
navController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
// show the navigation controller modally
[self presentModalViewController:navController animated:YES];
// Clean up resources
[navController release];
[viewController release];
}
okToCatchLinks = YES;
return YES;
}
С этим кодом я получу выбранное слово в строковой переменной.Затем я ищу это слово в БД, используя CoreData.HTML кодируется в кодировке UTF-8.Я должен иметь возможность искать это слово на разных языках.Поэтому, если пользователь нажимает на слово (日本語) или (резюме), я должен быть в состоянии найти его в БД.Для хранилища данных я преобразовал файл CSV в файл .sqlite.
Интересно, есть ли лучший способ сделать это.Лично я не люблю использовать для получения ссылки, но я не смог найти другого способа получить текущее слово в ссылке.Также выполнение поиска этого слова в БД не является чистым, потому что я не использую какой-либо UID для каждой строки.Я просто сравниваю строку, содержащую слово, со словами в соответствующем столбце БД.
Есть ли более эффективный способ сделать это?
Чтобы возобновить: наличие списка слов,пометьте эти слова в HTML, чтобы пользователь мог прикоснуться и извлечь информацию об этом слове из БД.