在 ios 中从 iCloud 获取文件时出错

Posted

技术标签:

【中文标题】在 ios 中从 iCloud 获取文件时出错【英文标题】:Error in get file from iCloud in ios 【发布时间】:2015-08-31 06:41:32 【问题描述】:

嗨,在我的应用程序中,我必须从 iCloud 获取文件。我启用 iCloud 在模拟器中一切正常。但是当我在 iPhone 中测试时,当我选择默认委托调用时,我可以看到 iCloud 文件,但我不能t 从 url 获取数据..

- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentAtURL:(NSURL *)url

    NSData *pdfData = [[NSData alloc] initWithContentsOfURL:url];
 

我总是得到pdfData 为零。我记录错误

Error Domain=NSCocoaErrorDomain Code=257 "The operation couldn’t be completed. (Cocoa error 257.)" UserInfo=0x17029810 NSFilePath=/private/var/mobile/Library/Mobile Documents/com~apple~CloudDocs/download (2).jpeg, NSUnderlyingError=0x15ea9680 "The operation couldn’t be completed. Operation not permitted"

我不知道..你能帮我解决这个问题吗..

【问题讨论】:

【参考方案1】:

最后我自己找到了答案.. 参考这个链接Here

- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentAtURL:(NSURL *)url

    [url startAccessingSecurityScopedResource];
    __block NSData *pdfData = nil;

    NSFileCoordinator *coordinator = [[NSFileCoordinator alloc] init];
    __block NSError *error;
    [coordinator coordinateReadingItemAtURL:url options:0 error:&error byAccessor:^(NSURL *newURL) 
        pdfData = [NSData dataWithContentsOfURL:newURL];
    ];
    [url stopAccessingSecurityScopedResource];

【讨论】:

以上是关于在 ios 中从 iCloud 获取文件时出错的主要内容,如果未能解决你的问题,请参考以下文章

无法从 UIDocumentPickerViewController ios swift 获取 .doc 文件

Flutter中从api获取数据时出错

Flutter中从api获取数据时出错

在 vuejs 应用程序中从 axios 获取数据时出错 [重复]

获取错误(生成 XML 文档时出错。)在 asp.net 的 extjs 中从服务器端获取数据

iOS 从iCloud中获取文件