Скачиваете плист (базу данных) из интернета? - PullRequest
0 голосов
/ 13 августа 2011

Я пытаюсь загрузить файл базы данных из Интернета. Позже я загружаю содержимое в UITableView, но на самом деле это не вопрос (я уже понял это). Теперь у меня есть список футбольных матчей в моем списке, с отсутствующими результатами (так как матчи еще не были сыграны). Я успешно загрузил этот список (он находится в каталоге моего проекта).

Я использую этот путь

[[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"]

Мои вопросы

  1. Как я могу скачать данные
  2. Как я могу показать "индикатор активности" во время загрузки?
  3. Где сохраняются загруженные данные? (поэтому я использую его как путь, описанный выше)
  4. Как я могу заставить приложение использовать старую версию, если не удается загрузить новую (из-за проблем с интернет-соединением)

С моей картой я уже предоставляю пустую базу данных (без результата), поэтому, если при первом запуске (после загрузки приложения) нет подключения к Интернету, это можно использовать.

Заранее большое спасибо!

Ответы [ 2 ]

1 голос
/ 13 августа 2011

Используйте NSURLConnection для загрузки данных, желательно в отдельном потоке.

0 голосов
/ 17 августа 2011

Я использовал ASIHTTPRequest классы, и он работает довольно хорошо ... Он загружает ВСЕ типы файлов, а не только .plist ... с ним можно действительно многое сделать (загрузить ... и т. Д.) Илучшая часть того, что он совместим как с iPhone, так и с Mac OS X ... Документация хорошо сделана, и все это идет с примером проекта :).Так что его легко использовать.

Установите все, как сказано на сайте, добавьте фреймворки, импортируйте «ASIHTTPRequest.h» в класс, в который вы хотите загрузить файлы.

Поиграйте с кодом (я выкладываю мой ...), и альт, работает красиво и гладко ...

// setting the save path... 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *path = [paths objectAtIndex:0];
    NSString *downloadPath = [NSString stringWithFormat:@"%@/data.plist",path];
//creating download / upload request like...
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:@"http://martin.archplan.sk/data.plist"]];
    [request setDidFailSelector:@selector(downloadFailed)];
    [request setDidFinishSelector:@selector(parseData)];
    [request setTimeOutSeconds:5];
    [request setDelegate:self];
    [request setDownloadDestinationPath:downloadPath];
    [request startSynchronous];

Всем, кто пытался помочь, большое спасибомного !!

...