6

我正在尝试从

-documentPicker:didPickDocumentAtURL:

方法。我试图使用获取文件的数据

NSData *data = [NSData dataWithContentsOfURL:url];

但它没有按我的预期工作,因为 UIDocumentPicker 在下载文件之前触发 -documentPicker:didPickDocumentAtURL: -method。

下载文件后如何从文件中获取 NSData?

在此先感谢,法比安。

4

1 回答 1

6

该文件实际上是下载的,但您需要使用文件协调器来读取文件内容。这样的事情应该做:

- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentAtURL:(NSURL *)url
{
    NSFileCoordinator *coordinator = [[NSFileCoordinator alloc] initWithFilePresenter:nil];
    NSError *error = nil;
    [coordinator coordinateReadingItemAtURL:url options:0 error:&error byAccessor:^(NSURL *newURL) {
        NSData *data = [NSData dataWithContentsOfURL:newURL];
        // Do something
    }];
    if (error) {
        // Do something else
    }
}
于 2015-03-13T21:06:51.223 回答