Iphone iCloud集成中的警告

Iphone iCloud集成中的警告,iphone,ios,icloud,mkdir,Iphone,Ios,Icloud,Mkdir,我正在尝试集成iCloud 一切正常,但当我尝试从iCloud读取文件时,会收到如下警告: Foundation called mkdir("/var/mobile/Library/Mobile Documents/.ubd/peer-E8A60A8F-FB9D-8721-F47C-hdffgdfg-v23/ftr/(A Document Being Saved By XYZ)"), it didn't return 0, and errno was set to 1. 获取数据的代码: fo

我正在尝试集成iCloud

一切正常,但当我尝试从iCloud读取文件时,会收到如下警告:

Foundation called mkdir("/var/mobile/Library/Mobile Documents/.ubd/peer-E8A60A8F-FB9D-8721-F47C-hdffgdfg-v23/ftr/(A Document Being Saved By XYZ)"), it didn't return 0, and errno was set to 1.
获取数据的代码:

for (NSMetadataItem *item in results)
        {
            NSString *filename = [item valueForAttribute:NSMetadataItemDisplayNameKey];
            NSURL *url = [item valueForAttribute:NSMetadataItemURLKey];
            MyDocument *doc = [[MyDocument alloc] initWithFileURL:url];

                [doc openWithCompletionHandler:^(BOOL success) {
                    if (success) {
                        NSData *file = [NSData dataWithContentsOfURL:url];

                        NSString *docDir = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"Import/iCloud"];
                        if (![[NSFileManager defaultManager] fileExistsAtPath:docDir])
                            [[NSFileManager defaultManager] createDirectoryAtPath:docDir withIntermediateDirectories:YES attributes:nil error:nil];

                        NSString *pdfFile = [docDir stringByAppendingPathComponent:filename];
                        if(![[NSFileManager defaultManager] fileExistsAtPath:pdfFile])
                            [[NSFileManager defaultManager] createFileAtPath:pdfFile contents:file attributes:nil];

                        NSLog(@"Successfully loaded data from cloud file name %@", filename);                        
                    }
                    else
                    {
                        NSLog(@"Failed to load data");
                    }
                }];

        }
    }

看起来您在iCloud中有一个部分写入的文件(基于错误中XYZ保存的文档),您的元数据查询已将该文件返回给您,因为它也与文件名匹配。几周前,我遇到了类似的情况,通过使用文件的确切路径解决了这个问题,如:

NSString *filepath = [containerURL.path stringByAppendingPathComponent:@"MyFileName"];

NSPredicate *pred = [NSPredicate predicateWithFormat: @"%K == %@", NSMetadataItemPathKey, filepath];
[query setPredicate:pred];

看起来您在iCloud中有一个部分写入的文件(基于错误中XYZ保存的文档),您的元数据查询已将该文件返回给您,因为它也与文件名匹配。几周前,我遇到了类似的情况,通过使用文件的确切路径解决了这个问题,如:

NSString *filepath = [containerURL.path stringByAppendingPathComponent:@"MyFileName"];

NSPredicate *pred = [NSPredicate predicateWithFormat: @"%K == %@", NSMetadataItemPathKey, filepath];
[query setPredicate:pred];