我正在尝试解析医学词典(.csv 文件),然后通过UITextChecker
: learnword 方法学习所有这些单词,以便拼写检查器将这些医学术语批准为有效单词。
我在另一个线程中调用此方法,但 csv 文件中的字数约为 50K。
- (void)parseMyCSVFile{
for (int i = 1; i < [csvContent count]; i++) {
NSString *learntWord = [NSString stringWithFormat:@"%@",[csvContent objectAtIndex:i]];
NSString *s = learntWord;
NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@" ()\n\""];
s = [[s componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];
if ([UITextChecker hasLearnedWord:s]){
NSLog(@"skipped");
}
else
{
[UITextChecker learnWord:s]; // Memory Issue Here
NSLog(@"learning");
}
HUD.detailsLabelText = [NSString stringWithFormat:@"%i of %i",i,[csvContent count]];
}
[self performSelectorOnMainThread:@selector(bgWorkEnded) withObject:nil waitUntilDone:YES];
}
我应用了 Instruments Time Profiler,发现问题出在我在循环内学习单词的那一行。
该应用程序尝试加载字典直到 5000 个单词(大约)然后崩溃。
任何帮助,将不胜感激。
谢谢