Загрузка файлов данных в проект iPhone

Как прочитать файл данных в проекте iPhone? Например, допустим, у меня есть статический файл с именем «level.dat», который структурирован следующим образом: препятствия: 10 время: 100 препятствие1: 10,20 ...

Я хотел бы прочитать содержимое файла в NSString, а затем выполнить синтаксический анализ. Как прочитать содержимое файла в строку? Кроме того, где в проекте должен находиться файл «level.dat»? Должен ли он быть в разделе «Ресурсы» или просто в главном каталоге?

Заранее спасибо!


person user21293    schedule 26.11.2008    source источник


Ответы (4)


См. этот ответ: Как fopen() на iPhone?, который показывает, как чтобы получить доступ к ресурсам в вашем комплекте. Получив путь, просто используйте [NSString stringWithContentsOfFile:encoding:error:].

NSString   *path = [[NSBundle mainBundle] pathForResource: @"level" ofType: @"dat"]
NSError    *error = nil;
NSString   *data = [NSString stringWithContentsOfFile: path 
                                             encoding: NSUTF8StringEncoding 
                                                error: &error];
person Ben Gottlieb    schedule 26.11.2008

Хотя это не то, о чем вы просили, подумайте о том, чтобы превратить ваши файлы в списки. Вам придется переформатировать их в XML, но тогда вы можете загрузить их прямо в NSDictionary с помощью:

dict = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"levels" ofType:@"plist"]];
person Chris Jefferson    schedule 27.11.2008
comment
Обратите внимание, что вы можете сделать то же самое с массивами, очень вероятно, что его данные могут больше подходить для верхнего уровня массивов, а не для словаря. - person Kendall Helmstetter Gelner; 07.12.2008

Рассматривали ли вы размещение данных в базе данных SQLite вместо плоского файла? Я считаю, что API очень прост в использовании на iPhone.

Именно так я теперь храню все свои данные на телефоне.

person Lee    schedule 06.12.2008

Если вам нужна помощь в анализе строки данных, есть полезная статья на Cocoa For Scientist

person Dan    schedule 27.11.2008