iOS PHAssetResourceManager requestDataForAssetResource возвращает ошибку в устройстве, но работает в симуляторе

#ios #objective-c #ios9 #phasset #photokit

#iOS #objective-c #ios9 #phasset #photokit

Вопрос:

Я пытался использовать приведенный ниже API, но получаю эту ошибку, как показано ниже

Ошибка домена = NSCocoaErrorDomain Code= -1 «(null)»

 - (PHAssetResourceDataRequestID)requestDataForAssetResource:(PHAssetResource *)resource
                                                options:(nullable PHAssetResourceRequestOptions *)options
                                    dataReceivedHandler:(void (^)(NSData *data))handler
                                      completionHandler:(void(^)(NSError *__nullable error))completionHandler;
  

Ниже приведен пример реализации

     NSArray *assetResourcesArray = [PHAssetResource assetResourcesForAsset: myPhAssetObject];
    PHAssetResource *assetResource = [assetResourcesArray objectAtIndex:0];

[[PHAssetResourceManager defaultManager] requestDataForAssetResource:assetResource options:nil dataReceivedHandler:^(NSData * _Nonnull data) {
    //do something with video data
    NSLog(@"data %lu", [data length]);
}
                                                   completionHandler:^(NSError * _Nullable error) {
                                                       NSLog(@"error ======== %@", error);
                                                   }];
  

Любой намек в правильном направлении будет высоко оценен.

Комментарии:

1. Похоже на поврежденную библиотеку фотографий на устройстве. Может быть, у вас есть второе устройство для тестирования?

2. это несовместимо с устройством, иногда оно будет работать, а иногда и не будет работать. Но в симуляторе это всегда работает