То, что сказал Джастин - сначала измерить, а затем оптимизировать, если простейшее решение - списки свойств - слишком дорого. Обратите внимание, что списки свойств могут быть двоичными; см. справочную страницу plutil .
Списки свойств не волшебны; они также должны быть проанализированы и обработаны при запуске.
Таким образом, вам лучше всего поместить их в текстовый файл, по одному слову в строке.
Теперь, если вы хотите быть очень эффективным в этом, я бы сделал что-то вроде:
используйте символы NULL в качестве разделителя
выделите буфер памяти размером с текстовый файл и прочитайте все содержимое файла в него (вы можете легко использовать +dataWithContentsOfFile:
NSMutableData, а затем просто вызвать -bytes
, чтобы получить доступный для записи буфер) .
вам, очевидно, понадобится указатель на каждое слово; trivial - итерация по буферу символ за символом, и каждый раз, когда вы видите NULL (а не в конце), вы знаете, что следующий байт - следующий адрес - будет указателем на первый символ следующее слово
, если вам нужны строки NSString, используйте строки NSString [initWithBytesNoCopy:length:encoding:freeWhenDone:][2]
Достаточно просто, чтобы я даже не посчитал это преждевременной оптимизацией.
Если вы хотите получить действительно хитрый, вы можете отсортировать слова по длине и сделать небольшую арифметику с указателями, чтобы избежать итерации по каждому символу. Но это было бы преждевременно.