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

Tam*_*ing 3 objective-c icloud

嗨,在我的应用程序中,我必须从iCloud获取文件..我启用iCloud在模拟器中工作正常..但是当我在iPhone中测试时,我可以在选择默认委托调用时看到iCloud文件,但我无法获取数据来自网址..

- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentAtURL:(NSURL *)url
{
    NSData *pdfData = [[NSData alloc] initWithContentsOfURL:url];
} 
Run Code Online (Sandbox Code Playgroud)

我一直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"}
Run Code Online (Sandbox Code Playgroud)

我想不出来..你能帮我解决这个问题吗?

Tam*_*ing 11

最后,我发现自己的答案.通过参照此链接这里

- (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];
}
Run Code Online (Sandbox Code Playgroud)