2014-09-25 5 views
0

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

Я использовал их для хранения в каталоге <Application_Home>/Library/Caches, но после процесса обновления iOS все они были удалены. Это поведение неприемлемо для меня, и теперь я ищу лучшее место, где я могу хранить данные и быть уверенным, что они не будут удалены системой.

Какое место лучше всего хранить в этом виде?

+1

Что относительно папки 'Documents'? была какая-то особая причина, почему вы ничего там не хранили? – holex

+0

Да, яблоко говорит: «Используйте этот каталог для хранения важных документов пользователя и файлов данных приложения. Критические данные - это любые данные, которые невозможно воссоздать вашим приложением, например, созданный пользователями контент». – Lloyd18

+1

вы просто указали здесь пункт: _ «Критические данные - это любые данные, которые невозможно воссоздать вашим приложением» _, первое предложение вашего сообщения о _ "(...) большом количестве данных (в основном изображений), которые загружаются из наш сервер (...) "_, поэтому вопрос в том, ** могут ли эти изображения воссоздаваться вашим приложением? **. если ваш ответ _no_, то нет причин, по которым вы не могли бы использовать папку 'Documents' ... если ваш ответ _yes_, вам не нужно хранить эти изображения в любом месте, потому что ваше приложение может воссоздать их во время выполнения. .. – holex

ответ

3

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

Только маленький кончик, всегда используйте либо URLForDirectory:inDomain:appropriateForURL:create:error: или NSSearchPathForDirectoriesInDomains

+1

Но яблоко говорит, что только данные пользователя или данные, которые нельзя воссоздать, должны храниться в каталоге Documents. Я уверен, что приложение будет отклонено, если я попытаюсь хранить там данные. Хмм ... Что насчет каталога /Library/Application Support? – Lloyd18

+0

Я сохранил много данных, которые воспроизводимы, но пока вы добавляете 'NSURLIsExcludedFromBackupKey', это должно быть хорошо. – rckoenes

+0

Спасибо, чем! Я попробую. – Lloyd18

1

только данные в каталоге документов не удаляется прошивкой:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsPath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil; 

данных в документах, которые синхронизированы с ICloud. Если их у вас их много, вам необходимо отключить эту опцию:

[urlOfImage setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:&error]; 
Смежные вопросы