2009-04-23 3 views
0

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

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

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

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

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

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

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

Я первый таймер. Спасибо, что прочитали это, Mark

ответ

3

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]; 
+0

Это замечательно. Спасибо за ваше время. Очень здорово, что вы, ребята, там. – mbarron

+0

Ваш ответ приведет меня к следующему: NSString * DG_XmlRecipeFile = [[NSBundle mainBundle] pathForResource: @ "DG_Recipes" ofType: @ "xml"]; Вы не только решили мою проблему, но и дали мне лучшее понимание дома iPhone обрабатывает независимые от платформы пути, пытаясь достичь копии файла, указанного в папке «Группы ресурсов проекта». Я вам очень обязан. Большое спасибо, Mark – mbarron

1

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

+0

Спасибо, что ответили. Я ценю, что вы нашли время. – mbarron