我添加到我的应用按需资源并发布到应用商店。我的部分用户有问题,资源下载完成时调用的 block 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];
});
}];
}
有人遇到类似情况吗?