objective-c – 如何告诉iOS从iCloud Drive下载文件并获得进度反馈

objective-c – 如何告诉iOS从iCloud Drive下载文件并获得进度反馈,第1张

概述我正在使用UIDocumentPicker来选择一个文件,但如果它很大,它可能需要一段时间才能打开,这对用户来说不是特别好的体验. 我查看了Apple的iCloud编程指南,我似乎无法弄清楚如何实际下载文件并获得一些进度反馈,文档太模糊了.我知道我应该对NSMetadataItems做一些事情,但实际上没有太多解释如何获得并使用它. 有人可以向我解释一下吗? 附:有没有比我更高的代表的人用UIDo 我正在使用UIdocumentPicker来选择一个文件,但如果它很大,它可能需要一段时间才能打开,这对用户来说不是特别好的体验.

我查看了Apple的iCloud编程指南,我似乎无法弄清楚如何实际下载文件并获得一些进度反馈,文档太模糊了.我知道我应该对NSMetadataItems做一些事情,但实际上没有太多解释如何获得并使用它.

有人可以向我解释一下吗?

附:有没有比我更高的代表的人用UIdocumentPicker和iCloudDrive标记这篇文章?

解决方法 据我所知,您只能使用以下方式检索进度反馈
Ubiquitous Item Downloading Status Constants只提供3种状态:

> NSURLUbiquitousItemDownloadingStatusCurrent
> NSURLUbiquitousItemDownloadingStatusDownloaded
> NSURLUbiquitousItemDownloadingStatusNotDownloaded

所以你不能有量化的进度反馈,只有部分也可以下载.

为此,您需要准备并启动NSMetadataQuery,添加一些观察者并使用NSURLUbiquitousItemDownloadingStatusKey键检查NSMetadataItem的下载状态.

self.query = [NSMetadataquery new];self.query.searchScopes = @[ NSMetadataqueryUbiquitousdocumentsScope ];self.query.predicate = [nspredicate predicateWithFormat:@"%K like '*.yourextension'",NSMetadataItemFSnameKey];[[NSNotificationCenter defaultCenter] addobserver:self selector:@selector(queryDIDUpdate:) name:NSMetadataqueryDIDUpdateNotification object:nil];[[NSNotificationCenter defaultCenter] addobserver:self selector:@selector(queryDIDFinishGathering:) name:NSMetadataqueryDIDFinishGatheringNotification object:nil];[self.query startquery];

然后,

- (voID)queryDIDUpdate:(NSNotification *)notification{    [self.query disableupdates];    for (NSMetadataItem *item in [self.query results]) {        NSURL *url = [item valueForAttribute:NSMetadataItemURLKey];        NSError *error = nil;        Nsstring *downloadingStatus = nil;        if ([url getResourceValue:&downloadingStatus forKey:NSURLUbiquitousItemDownloadingStatusKey error:&error] == YES) {            if ([downloadingStatus isEqualToString:NSURLUbiquitousItemDownloadingStatusNotDownloaded] == YES) {                // Download            }            // etc.        }    }    [self.query enableupdates];}
@H_502_45@ 总结

以上是内存溢出为你收集整理的objective-c – 如何告诉iOS从iCloud Drive下载文件并获得进度反馈全部内容,希望文章能够帮你解决objective-c – 如何告诉iOS从iCloud Drive下载文件并获得进度反馈所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1034264.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存