我正在使用iCloud的UIDocument.我没有使用CoreData.删除UIDocument的最佳方法是什么?
Ale*_*fee 14
从基于文档的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];
}];
});
Run Code Online (Sandbox Code Playgroud)
注意:"当你从存储中删除文档时,你的代码应该接近UIDocument对读写操作的作用.它应该在后台队列上异步执行删除,它应该使用文件协调."
Har*_*hah 11
要从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];
Run Code Online (Sandbox Code Playgroud)
这是我用来删除文档的方式,检查出来.这对我很好.谢谢
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)")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5479 次 |
| 最近记录: |