Я новичок в Objective C и XCode, сейчас работаю над своей первой игрой для iPhone.Игра должна выполнить очень быструю проверку орфографии по словарю скрэббл из более чем 250 000 слов, в идеале достаточно быструю, чтобы я мог проверять более 100 строк по списку слов в одном кадре.
Я уже писал об этом раньше в C и ActionScript 2 без проблем, просто используя стандартный двоичный поиск, но я не уверен, что это лучший способ реализовать это в Objective C с такими параметрами, как NSString и NSArray.
Самая большая проблема на данный момент заключается в том, что он даже не будет компилироваться.Если я создаю NSArray, заполненный NSStrings, XCode просто зависает, но не падает.Я оставил компиляцию около 30 минут безрезультатно.Код, который я использовал:
words=[NSArray arrayWithObjects:@"aa", @"aah", ...250,000 words... @"zyzzyvas" ,nil];
Когда список слов сокращается до пары сотен слов, он компилируется и работает нормально.
Может кто-нибудь пролить свет на причину сбоя илипредложить лучший способ сделать это?
Следующее, что я собираюсь попробовать, это разбить список слов на множество более мелких частей;разделенные первой буквой и, возможно, также количеством букв, но это означает, что вам нужно много переформатировать огромные текстовые файлы для проб и ошибок, которые вполне могут попасть в ту же стену.
Другая часть этогоВопрос - это общий запрос о скорости NSArray и издержках NSString по сравнению со старомодным массивом указателей на символы в стиле C.Если строки NSString содержат даже несколько дополнительных байтов заголовков или указателей функций или чего-то еще, создание 250 тысяч из них в приложении для iPhone, вероятно, является неправильным решением, верно?
Любые предложения вообще будут приняты с благодарностью.