如何删除iCloud文件?

我正在使用iCloud的UIDocument。 我没有使用CoreData。 删除UIDocument的最佳方法是什么?

要从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]; 

这是我用来删除文件的方式,检查出来。 这对我来说太好了。 谢谢

从基于文档的应用程序编程指南(适用于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]; }]; }); 

注意:“当你从存储中删除一个文档时,你的代码应该与UIDocument的读写操作大致相当,它应该在后台队列上asynchronous执行删除操作,并且应该使用文件协调。

SWIFT 3来自@AlexChaffee的回答

 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)") } } } } 

我想我find了一个解决scheme:

 [[NSFileManager defaultManager] setUbiquitous:NO itemAtURL:url destinationURL:nil error:nil] 

资料来源: http : //oleb.net/blog/2011/11/ios5-tech-talk-michael-jurewitz-on-icloud-storage/

请参阅“删除文档”下的“pipe理文档的生命周期”苹果文档。