gpt4 book ai didi

ios - iCloud:回调 NSFileManager 的 startDownloadingUbiquitousItemAtURL?

转载 作者:技术小花猫 更新时间:2023-10-29 10:14:34 31 4
gpt4 key购买 nike

我正在使用 NSFileManagerstartDownloadingUbiquitousItemAtURL 将文件从 iCloud 下载到本地副本(在这种情况下,本地还没有文件的副本)。我似乎找不到这个过程的回调。我需要回调来告诉我的应用程序请求的文件已完成下载(到本地副本),以便其他任务可以开始读取文件的内容并执行操作。

我可以检查文件是否已下载。但它会涉及不断的轮询。有没有一种方法可以在不设置计时器的情况下进行轮询?

最佳答案

我相信此方法旨在与基于 Apple's documentation 的文件协调器结合使用.所以你需要像这样使用文件协调器:

NSURL *itemURL = nil; // this is the URL you want to read from

__block NSData *data = nil;
NSError *error = nil;
NSFileCoordinator *coordinator = [[NSFileCoordinator alloc] initWithFilePresenter:nil];
[coordinator coordinateReadingItemAtURL:itemURL options:0 error:&error byAccessor:^(NSURL *newURL) {
data = [NSData dataWithContentsOfURL:newURL];
}];

然而,这将是同步的,因此如果您想异步执行某些操作,您可以这样使用 block :

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// read info from the URL using the code above
dispatch_async(dispatch_get_main_queue(), ^{
// handle data read from the URL
});
});

关于ios - iCloud:回调 NSFileManager 的 startDownloadingUbiquitousItemAtURL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9675303/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com