Я считаю, что этот метод предназначен для использования совместно с файловыми координаторами на основе документации Apple . Поэтому вам нужно использовать файловый координатор, например, так:
NSURL *itemURL = nil; // this is the URL you want to read from
__block NSData *data = nil;
NSError *error = nil;
NSFileCoordinator *coordinator = [[NSFileCoordinator alloc] initWithFilePresenter:nil];
[coordinator coordinateReadingItemAtURL:itemURL options:0 error:&error byAccessor:^(NSURL *newURL) {
data = [NSData dataWithContentsOfURL:newURL];
}];
Однако это будет синхронно, поэтому, если вы хотите сделать что-то асинхронно, вы можете использовать блоки следующим образом:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// read info from the URL using the code above
dispatch_async(dispatch_get_main_queue(), ^{
// handle data read from the URL
});
});