Компиляция XML-файла в двоичный файл - PullRequest
0 голосов
/ 23 апреля 2009

Я хочу проанализировать и XML-файл в приложении для iPhone, не переходя на диск. Я могу это сделать? Как? Я включил файл справки TXT в приложение, использующее MSVC.

Я поместил файл XML в папку / группу с именем Resources в проекте.
У меня есть файл XML в каталоге proj.
Я щелкнул правой кнопкой мыши на папке «Ресурсы» и выбрал добавить -> Существующий файл .
Я щелкаю правой кнопкой мыши по XML-файлу и выбираю GetInfo .

Там я попытался изменить тип пути {Абсолют, относительно проекта и т. Д.}
Моя программа отлично работает на симуляторе, когда я использую:

NSString * const DG_XmlRecipeFile = @"/Users/appleuser/Cocoa/iHungry6/Recipes.xml";

Мне кажется, это также должно работать с:

NSString * const DG_XmlRecipeFile = @"Recipes.xml";

Если я правильно установил тип пути. Это не так.

Я первый таймер. Спасибо за чтение, Марк

Ответы [ 2 ]

3 голосов
/ 23 апреля 2009

Xcode копирует ресурсы проекта в комплект приложений. Вы можете получить доступ к своему файлу в вашем комплекте следующим образом:

NSString *DG_XmlRecipeFile = [[NSBundle mainBundle] pathForResource:@"Recipes" ofType:@".xml"];

Файлы в комплекте доступны только для чтения. Если вы хотите изменить файл, вам нужно будет скопировать его куда-нибудь, чтобы вы могли его изменить. Для этого хорошо работает каталог документов вашего приложения.

NSArray  *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsDirectory = [[paths objectAtIndex:0] retain];
NSString *newFilePath = [docsDirectory stringByAppendingPathComponent:@"Recipes.xml"];    
NSError  *error = nil;

[[NSFileManager defaultManager] copyItemAtPath:DG_XmlRecipeFile toPath:newFilePath error:&error];
1 голос
/ 23 апреля 2009

Я не думаю, что тип пути, на который вы ссылаетесь, - это путь к ресурсу в создаваемом пакете приложения. Это способ ссылки на файл в файле .proj.

...