在通过NSBundleResourceRequest(按需资源)下载后,我无法访问资产目录中的图像。
我的代码,说图像集名称为" snow_4"带有随需应变资源标签" tag1"
NSBundleResourceRequest* resourceRequest = [[NSBundleResourceRequest alloc] initWithTags:[NSSet setWithObjects:@"tag1", nil]];
[resourceRequest conditionallyBeginAccessingResourcesWithCompletionHandler:
^(BOOL resourcesAvailable){
// if resource is not available download it
if (!resourcesAvailable) {
[resourceRequest beginAccessingResourcesWithCompletionHandler:
^(NSError * __nullable error){
if(!error){
UIImage* image = [UIImage imageNamed:@"snow_4"]; // image is null
}
}];
}else{
UIImage* image = [UIImage imageNamed:@"snow_4"]; // image is null
}
}];
以下是我的磁盘报告,请注意[UIImage imageNamed:@" snow_3"](标记为'使用中')会返回正确的对象,但不会返回标记为'下载'
感谢您的时间和帮助!
谢谢, 火星
答案 0 :(得分:1)
确保NSBundleResourceRequest
没有被提前发布。尝试让NSBundleResourceRequest
全局变量,
并使用UIImage(named: "xxx", in: self.bundleReq.bundle, compatibleWith: nil)
答案 1 :(得分:0)
这样做
image = [UIImage imageNamaed:@" snow_4" inBundle:[resourceRequest bundle]];
答案 2 :(得分:0)
int[]