NSFileManager开始下载BiquitousItem在iOS14上无法正常工作

NSFileManager开始下载BiquitousItem在iOS14上无法正常工作,ios,objective-c,iphone,xcode,icloud-documents,Ios,Objective C,Iphone,Xcode,Icloud Documents,从2013年起,我就在AppStore中安装了一款应用程序,它一直运行得完美无缺。它在iCloud上创建并同步文件 由于iOS14开始下载BIQUITOUSSITEMATURL只下载现有文件的一小部分。如果我在模拟器和iOS14中启动应用程序(当然也在真实设备上)。如果我使用iOS12或13在模拟器中启动应用程序,它将按预期工作 我在网上找不到任何关于StartDownloadingubiquitousItemAttribute方法可能发生变化的信息 下面是有问题的代码: ... BOOL tt

从2013年起,我就在AppStore中安装了一款应用程序,它一直运行得完美无缺。它在iCloud上创建并同步文件

由于iOS14开始下载BIQUITOUSSITEMATURL只下载现有文件的一小部分。如果我在模拟器和iOS14中启动应用程序(当然也在真实设备上)。如果我使用iOS12或13在模拟器中启动应用程序,它将按预期工作

我在网上找不到任何关于StartDownloadingubiquitousItemAttribute方法可能发生变化的信息

下面是有问题的代码:

...
BOOL tt =  [[NSFileManager defaultManager] startDownloadingUbiquitousItemAtURL:cloudFileUrl error:&error] ;

if (error != nil)
{
    NSLog(@"ERROR Loading %@", cloudFileUrl) ;
}
...
tt为true,error为nil,因此同步过程似乎已正确启动

但是,如果我尝试使用

NSArray *dirContent = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:cloudFileUrl includingPropertiesForKeys:[[NSArray alloc] initWithObjects:NSURLNameKey, nil] options:NSDirectoryEnumerationSkipsHiddenFiles error:&error];
数组dirContent仅包含3或4个元素,即使文件夹包含10个文件


知道问题出在哪里吗?我也打开了苹果的一个bug。

好的,解决方案是这个调用不会读取一些二进制文件。发现了据称的文本文件

NSArray *dirContent = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:cloudFileUrl includingPropertiesForKeys:[[NSArray alloc] initWithObjects:NSURLNameKey, nil] options:NSDirectoryEnumerationSkipsHiddenFiles error:&error];
我已将呼叫替换为此

NSArray *dirContent = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:cloudFileUrl includingPropertiesForKeys:[[NSArray alloc] initWithObjects:NSURLNameKey, nil] options:0 error:&error];

现在它又起作用了。

NSMetadataUbiquitousItemDownloadingStatusKey的值是多少?请您再详细说明一下好吗?您有如何使用此功能的示例吗?
NSMetadataItem*item=[[NSMetadataItem alloc]initWithURL:cloudFileURL];id attr=[属性的项值:NSMetadataUbiquitousItemDownloadingStatusKey]
然后将
attr
NSMetadataUbiquitousItemDownloadingStatusCurrent
或其他可能的下载状态值进行比较。嗯,这不会编译。我从Xcode(12.0.1)收到一条“initWithURL:在iOS上不可用”的消息——这很奇怪,因为文档清楚地说明了这个方法的存在。我觉得苹果公司用iOS14打破了这一局面:-(