#iphone #xml #local-storage
#iPhone #xml #локальное хранилище
Вопрос:
Я локально сохранил один XML-файл и показываю детали с помощью NSXMLParser (который хранится в папке ресурсов). Но теперь я хочу загрузить новый xml с URL-адреса (со стороны клиента), и мне нужно сохранить этот новый XML-файл в локальном, а также удалить существующий из приложения. Как я могу это сделать? Есть предложения? Есть какой-нибудь пример кода / проекта для справки? Пожалуйста, помогите мне. Спасибо, что прочитали мой плохой английский. Заранее спасибо.
Комментарии:
1. вы можете сделать это с помощью ASIHTTPRequest. я загрузил zip-файл размером 30 МБ на iPhone с помощью ASIHTTPRequest и разархивировал локально.
2. Большое вам спасибо за быстрый ответ. Я не очень хорошо знаком с разработкой для iphone / ipad. Если вы не возражаете, не могли бы вы объяснить свой ответ? Спасибо.
Ответ №1:
хотя вы можете удалить файл из каталога ресурсов yr и сохранить новый, но мой способ — выполнять операции с файлами в основном в директориях приложений, таких как каталог документов или каталог кэша.
сначала вы сохраните XML-файл yr из ресурса приложения в каталог кэша, а затем получите доступ к файлу оттуда.И вы также можете удалить файл из каталога ресурсов, он больше не нужен. любой новый файл, доступный в Интернете, сначала удаляет старый из кэша и добавляет новый в каталог кэша.
все это выглядит следующим образом:-
//get your cachedirectory path
NSArray *imagepaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachdirectory = [[NSString alloc] initWithString:[imagepaths objectAtIndex:0]];
//first save your file from resource directory to app's cache directory
NSString * path = [[NSBundle mainBundle] pathForResource:@"fileinresource" ofType:@"xml"];
NSData *filedata = [NSData dataWithContentsOfFile:path];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *savename = [cachdirectory stringByAppendingPathComponent:@"mynewfile.xml"];
[fileManager createFileAtPath:savename contents:filedata attributes:nil];
//remove file from resource directory
[fileManager removeItemAtPath:path error:nil];
//new file from internet is avilable then do following:first remove old file from cache
[fileManager removeItemAtPath:cachdirectory error:nil];
//save new file from internet
NSData *newfiledata=[NSData dataWithContentsOfURL:[NSURL URLWithString:myxmlurlstringpath]];
[fileManager createFileAtPath:savename contents:newfiledata attributes:nil];
Комментарии:
1. Большое вам спасибо за быстрый ответ. Я не очень хорошо знаком с разработкой ios. Вот почему я изо всех сил пытаюсь выполнить все действия. Спасибо за ваш ответ. Я буду включен в свой код. Спасибо.