如何删除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理文档的生命周期”苹果文档。