1

アプリのオンデマンド リソースに追加し、アプリ ストアに投稿しました。一部のユーザーに問題があり、リソースのダウンロードが完了したときに呼び出されるブロックの completionHandler が発生しません。ディスク容量には依存しません。ほとんどの場合、正しく機能します。

同じトラブルが発生したら、iPhone のコンテンツをリセットし、アプリを再インストールすると、トラブルが残ります。

- (void) viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
             NSSet *tags = [NSSet setWithObjects: self.exerciseId, nil];
             resourceRequest = [[NSBundleResourceRequest alloc] initWithTags:tags];
             [resourceRequest conditionallyBeginAccessingResourcesWithCompletionHandler:
              ^(BOOL resourcesAvailable)
              {

                  if (resourcesAvailable) {
                      dispatch_async(dispatch_get_main_queue(), ^{
                          [self setupMoviePlayerVideoWithName:_exerciseId];
                      });
                  }
                  else {
                      [self tryToGetODR];
                  }
              }];    
}


  -(void) tryToGetODR{
           resourceRequest.loadingPriority = NSBundleResourceRequestLoadingPriorityUrgent;
            [resourceRequest beginAccessingResourcesWithCompletionHandler: ^(NSError * __nullable error){
                    dispatch_async(dispatch_get_main_queue(), ^{
                        if (error) {

                            return;
                        }
                        [self.videoImageView setHidden:true];
                        [self.activityIndikator setHidden:true];
                        [self.downloadProgressLabel setHidden:true];
                        [self setupMoviePlayerVideoWithName:_exerciseId];

                    });
                }];
    }

似たようなことに直面した人はいますか?

4

1 に答える 1