Я пытаюсь создать простую игру для iPhone, которая на протяжении всего процесса выполняла бы несколько проверок, чтобы увидеть, было ли вводимое пользователем слово реальным.У меня есть текстовый файл объемом 1,7 Мб (это разумный размер?), В котором каждое слово в отдельной строке содержит все слова на английском языке.Это код, который запускается в методе init игровой сцены.correctWords
- это массив, который будет содержать все проверенные пользователями слова.Этот код анализирует текстовый файл и помещает все слова в массив с именем currentDict
:
correctWords = [[NSMutableArray alloc] init];
//set where to get the dictionary from
NSString *filePath = [[NSBundle mainBundle] pathForResource: [NSString stringWithFormat: @"dictionary"] ofType:@"txt"];
//pull the content from the file into memory
NSData* data = [NSData dataWithContentsOfFile:filePath];
//convert the bytes from the file into a string
NSString* string = [[[NSString alloc] initWithBytes:[data bytes]
length:[data length]
encoding:NSUTF8StringEncoding] autorelease];
//split the string around newline characters to create an array
NSString* delimiter = @"\n";
currentDict = [string componentsSeparatedByString:delimiter];
[currentDict retain];
, а затем проверяет, является ли слово, введенное пользователем, на самом деле словом. У меня есть эта проверка
if([currentDict containsObject: userInput]){
Всякий раз, когда загружается игровая сцена, на самом устройстве происходит очень заметная задержка (3-4 секунды), хотя там это происходит почти мгновенно в симуляторе, а затем у меня также запускаются анимации на протяжении большей частив игре, но всякий раз, когда он пытается проверить слово, есть небольшая, но заметная задержка в анимации.Мне просто интересно, есть ли лучший способ загрузить словарь в память, или есть какая-то стандартная практика для проверки слов.Также зачем проверять, вызывает ли это слово задержку анимации?Я предположил, что анимация была частью собственного потока (и, следовательно, теоретически не будет затронут)