Я использую UIDocument с iCloud. Я не использую CoreData. Каков наилучший способ удаления UIDocument?Как удалить документы iCloud?
ответ
Чтобы удалить документ из ICloud, сначала вы должны получить имя файла, который вы хотите удалить. а затем вы можете удалить его с помощью NSFileManager.
NSString *saveFileName = @"Report.pdf";
NSURL *ubiq = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
NSURL *ubiquitousPackage = [[ubiq URLByAppendingPathComponent:@"Documents"] URLByAppendingPathComponent:saveFileName];
NSFileManager *filemgr = [NSFileManager defaultManager];
[filemgr removeItemAtURL:ubiquitousPackage error:nil];
Это способ, которым я удалял документ, Check it out. Это отлично подходит для меня. Благодаря
Я думаю, я нашел решение:
[[NSFileManager defaultManager] setUbiquitous:NO itemAtURL:url destinationURL:nil error:nil]
Источник: http://oleb.net/blog/2011/11/ios5-tech-talk-michael-jurewitz-on-icloud-storage/
Это не работы- ICloud теперь игнорирует это вызов с нулевым значением destinationURL. –
См Яблоко документации "Управление Life-Cyle Документа" в разделе «Удаление документа. "
Скопировано из "Deleting a Document" секции Document-Based App Programming Guide for iOS
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) {
NSFileCoordinator* fileCoordinator = [[NSFileCoordinator alloc] initWithFilePresenter:nil];
[fileCoordinator coordinateWritingItemAtURL:fileURL options:NSFileCoordinatorWritingForDeleting
error:nil byAccessor:^(NSURL* writingURL) {
NSFileManager* fileManager = [[NSFileManager alloc] init];
[fileManager removeItemAtURL:writingURL error:nil];
}];
});
NB:." Когда вы удаляете документ из хранилища, ваш код должен приближать то, что UIDocument делает для операций чтения и записи. Он должен выполнить удаление асинхронно на фоне очереди, и он должен использовать координацию файла.»
Если вы используете 'UIDocument', вам не нужно реализовывать собственный NSFileCoordinator, он уже запечен в' UIDocument'. Использование метода - это дорогостоящие результаты в нескольких экземплярах 'NSFileCoordinator'. См. Https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileCoordinators/FileCoordinators.html – Joseph
@Joseph. Мне интересно, из вашего ответа выше, почему я также не могу удалить объект, который является объектом UIDocument, из iCloud или приложение зависает при попытке сделать это? Мой родственный вопрос [здесь] (http://stackoverflow.com/questions/43821141/app-hangs-deleting-icloud-document-when-following-guideline-using-nsfilecoordi) – yohannes
СВИФТ 3 приходят от ответа @AlexChaffee«s
func deleteZipFile(with filePath: String) {
DispatchQueue.global(qos: .default).async {
let fileCoordinator = NSFileCoordinator(filePresenter: nil)
fileCoordinator.coordinate(writingItemAt: URL(fileURLWithPath: filePath), options: NSFileCoordinator.WritingOptions.forDeleting, error: nil) {
writingURL in
do {
try FileManager.default.removeItem(at: writingURL)
} catch {
DLog("error: \(error.localizedDescription)")
}
}
}
}
- 1. iCloud Документы не отображаются
- 2. ICloud документы слишком большой файл
- 3. Как создать документы на диске iCloud?
- 4. Как удалить данные в iCloud
- 5. Документы iCloud больше не находятся в папке «Мобильные документы»?
- 6. Документы iCloud greyed для гостевого пользователя
- 7. Как удалить данные ключа iCloud
- 8. Сохраните документы iOS 8 на iCloud Drive
- 9. Как удалить документы из Elasticsearch
- 10. Большие файлы, загруженные в Документы и зарезервированные для iCloud
- 11. CoreData + iCloud + Cascade Удалить - как обращаться?
- 12. Как очистить/удалить данные резервного копирования iCloud?
- 13. Mongo удалить последние документы
- 14. Позволяет пользователю редактировать/просматривать существующие документы, когда iCloud становится недоступным
- 15. NSMetadataQuery не находит документы после перемещения их в iCloud
- 16. Документы iCloud Drive, не включенные в результаты NSMetadataQuery
- 17. Удалить документы, используя объект datetime?
- 18. ElasticSearch NEST Удалить все документы
- 19. Как удалить все документы в безопасном режиме?
- 20. Как удалить документы, возвращенные группой в mongodb?
- 21. Как удалить определенные документы из MongoDB?
- 22. Как удалить старые документы из Lucene/Lucene.NET
- 23. Как удалить все документы в индекс
- 24. Как удалить все документы из индекса elasticsearch
- 25. Удалить пустые документы в MongoDB
- 26. Удалить локальные файлы icloud с устройства?
- 27. Как удалить контейнеры для повсеместности iCloud на iPhone?
- 28. iCloud Drive Folder
- 29. Простая реализация iCloud
- 30. Как проверить программно, если включен iCloud Drive
В соответствии с документами вы должны удалить асинхронный файл в фоновом режиме. http://developer.apple.com/library/ios/documentation/DataManagement/Conceptual/DocumentBasedAppPGiOS/ManageDocumentLifeCycle/ManageDocumentLifeCycle. html # // apple_ref/doc/uid/TP40011149-CH4-SW4 – Jonny
Где это работает, он не использует реализацию 'UIDocument'' NSF Ответ ileCoordinator''Adrian Sarli лучше. – Joseph
Для справки обратите внимание, что 'removeItemAtURL:' не удалит документ, если он еще не был загружен с iCloud на устройство. – Mark