Могу ли я сохранить загруженные файлы в NSCacheDictionary в iphone?

Я загружаю некоторые файлы mp3 через свое приложение, используя NSURLConnection. Собственно куда мне сохранить скачанный файл. Кто-то говорит, что сохранение в NSDocumentDirectory приведет к отклонению приложения.

Могу ли я сохранить файл в NSCacheDictionary и получить его из itunes?

Я использовал этот фрагмент кода для сохранения файлов в NSCacheDictionary.

   NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(
                                                            NSCachesDirectory, NSUserDomainMask, YES)
                        objectAtIndex: 0];
   NSString *documentsDirectoryPath = [cachesPath stringByAppendingPathComponent:@"music.mp3"];
  [receivedData writeToFile:documentsDirectoryPath atomically:YES];

Могу ли я использовать так?


person neerajPK    schedule 08.08.2012    source источник


Ответы (1)


Если вы сохраните файлы в NSCacheDictionary, вы не сможете получить их из itunes.

Редактировать: вы можете сохранить mp3-файлы в NSDocumentDirectory и установить флаг «не создавать резервные копии» для установки флага, который вы можете проверить на Технические вопросы и ответы QA1719.

Для получения дополнительной информации вы можете проверить документацию.

конкретно:

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

person Himanshu A Jadav    schedule 08.08.2012
comment
Итак, где я могу сохранить свой mp3-файл и захотеть получить к нему доступ позже из itunes. - person neerajPK; 08.08.2012
comment
Хорошо, я думаю, что могу использовать Исключение файла из резервных копий на iOS 5.1, есть ли у них какие-либо проблемы при резервном копировании файла из iTunes? - person neerajPK; 08.08.2012
comment
@neerajPK Нет. Я не знаю ни одной проблемы. Это будет работать как шарм. :) - person Himanshu A Jadav; 08.08.2012
comment
еще одно сомнение, пожалуйста, я использовал первый код из ссылки, но получаю ошибку SIGABERT в строке assert([[NSFileManager defaultManager] fileExistsAtPath: [путь URL1]]); , но когда я попробовал второй код bi, проблем не обнаружено. можно ли использовать второй метод? - person neerajPK; 08.08.2012
comment
@neerajPK, если ваше приложение работает для iOS 5.1, вы должны использовать первый метод самостоятельно, вы не должны использовать второй метод. КАК ЭТО ПРЕДЛОЖЕНО В ДОКУМЕНТАХ. если ваше приложение работает для iOS 5.0.1, вам следует использовать второй метод. Ниже iOS 5.0.1 не поддерживается исключение файла из резервной копии. В случае сбоя вы можете подтвердить, что оба URL-адреса были одинаковыми и правильными. для создания URL вы должны использовать метод + (id)fileURLWithPath:(NSString *)path. - person Himanshu A Jadav; 08.08.2012
comment
могу ли я использовать код NSURL *url=[NSURL fileURLWithPath:documentsDirectoryPath]; [самостоятельно addSkipBackupAttributeToItemAtURL:url]; - person neerajPK; 08.08.2012