我正在寻找更好的方法将一堆文件从我的iCloud容器下载到我的沙盒中。这是我目前使用:将iCloud文件复制到沙盒
for (FileAttachments *fileLink in items) {
NSURL *cloudFileURL = [fileLink urlForCloudAttachmentWithName];
NSURL *fileURL = [backupCloudLocalDirectoryURL URLByAppendingPathComponent: fileLink.fileName];
NSFileCoordinator *fileCoordinator = [[NSFileCoordinator alloc] initWithFilePresenter:nil];
[fileCoordinator coordinateReadingItemAtURL:fileURL options:NSFileCoordinatorReadingWithoutChanges error:&error
byAccessor:^(NSURL *newURL) {
NSError *blockError = nil;
[fileManager copyItemAtURL:cloudFileURL toURL:fileURL error:&blockError];
}];
}
}
是否与制作的iCloud项目的副本这样什么问题?在制作中,我有一些用户抱怨说他们的所有文件都没有下载。代替使用NSFileManager's startDownloadingUbiquitousItemAtURL:error
更好吗?如果是这样,为什么? 谢谢。
在运行上面的代码之前,您是否做过任何事情以确保文件已被下载? –
或者更好的方法是,你如何找到云文件的URL,以便知道你想从哪个URL复制? –
将这些URL从文件添加到应用程序时保存在Core Data中。他们持有对该文件的有效参考;只是它们在某些情况下没有被下载,并且不可重现。它不应该从fileCoordinator coordinateReadingItemAtURL块中工作吗? –