2013-08-19 6 views
0

У меня есть приложение, которое отображает текстовые данные с изображениями и/или видео, которое отображается в UITableView. Теперь у меня есть требование, чтобы данные были доступны в автономном режиме. Я думаю о pruge и хранении данных каждый раз, когда у меня есть соединение. Новые данные загружаются. Как это может быть достигнуто - хранение данных в таблице mysql или любом другом решении. Обратите внимание, что я использую AFNetworking для потоковой передачи изображений в uiimageview. Изображения и видео должны храниться как blob - это локальная база данных mysql? Обратите внимание, что мой проект не использует coredata.Как хранить данные JSON с изображениями и видео в автономном режиме?

ответ

0

Лучшим способом, вероятно, будет загрузка и сохранение медиафайлов в каталоге caches.

Затем, когда вам нужно получить доступ к файлу, вы можете проверить, существует ли он, и если да, используйте его, а если нет, обрабатывайте это условие любым способом, который вам нужен.

NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
if(![fileManager fileExistsAtPath:[cachePath stringByAppendingPathComponent:@"myfile.zip"]]) { 
    //create it, copy it from app bundle, download it etc. 
} 
//start using it 

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

Если вы абсолютно должны иметь файлы в резервной копии, используйте каталог Documents вместо каталога caches.

Вы сказали, что используете AFNetworking, который может легко загружать файлы в файл и даже имеет поддержку для превращения задачи в фоновый режим, чтобы он мог завершиться после закрытия приложения.

+0

привет спасибо за ваш ответ. U означает, что я должен хранить изображения & данные JSON в каталоге кэшей? – veereev

+0

Правильно Veereef. Храните изображения и данные json в каталоге кэшей, а затем перед тем, как вы получите доступ к ним, проверьте, есть ли они. Если нет, загрузите их. – Jeff

+0

Спасибо, что и предложили. – veereev