Сохранить и загрузить файл с URL - PullRequest
1 голос
/ 24 марта 2011

Приложение для iPhone

В настоящее время я пытаюсь понять, как я могу сохранить файл из URL-адреса в каталоге документов, а затем прочитать файл из каталога документов ..

NSURL *url = [NSURL URLWithString:@"http://some.website.com/file"];

NSData *data = [NSData dataWithContentsOfURL:url];

NSString *applicationDocumentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

NSString *storePath = [applicationDocumentsDir stringByAppendingPathComponent:@"Timetable.ics"];

[data writeToFile:storePath atomically:TRUE];

Я получил этот код от http://swatiardeshna.blogspot.com/2010/06/how-to-save-file-to-iphone-documents.html

Я хочу знать, если это правильный способ сделать это, и я хочу знать, как я могу загрузить файл из каталога документов в строку NSString ..

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 24 марта 2011

Если вы делаете это в своем основном потоке, то нет, это не правильно. Любое сетевое соединение должно выполняться в фоновом режиме, чтобы не блокировать интерфейс. Для этого вы можете создать новый поток (NSThread, performSelectorInBackground:, NSOperation + NSOperationQueue) или запланировать его в цикле выполнения (NSURLConnection).

1 голос
/ 24 марта 2011

То, что у вас выглядит правильно, чтобы прочитать этот файл обратно в строку, используйте:

РЕДАКТИРОВАТЬ: (изменено кодирование используется для кодирования)

NSError *error = nil;
NSString *fileContents = [NSString stringWithContentsOfFile:storePath encoding:NSUTF8StringEncoding error:&error];

Конечно, вам следует изменить тип строковой кодировки, если вы используете определенный тип кодировки, но UTF8, скорее всего, правильный.

...