我在我的项目中实现了应用程序细化,从以下两个答案中获得了引用:-
下载后如何检测on demand resources的位置?
发布于 2017-03-31 17:21:14
除非您在初始化资源请求时指定了一个包,否则默认情况下资源将放置在主包中。因此,例如,您可以以这种方式访问它们,如果适合您的资源类型:
NSString *path= [[NSBundle mainBundle] pathForResource:@"movie" ofType:@"mp4" ];发布于 2018-01-18 17:37:15
最后,我发现了如何获得随需应变资源位置的路径:
func preloadResourcesWithTag(tagArray: Array<Any>, resourceName: String ){
let tags = NSSet(array: tagArray)
let resourceRequest:NSBundleResourceRequest = NSBundleResourceRequest(tags: tags as! Set)
resourceRequest.beginAccessingResources { (error) in
OperationQueue.main.addOperation{
guard error == nil else {
print(error!);
return
}
print("Preloading On-Demand Resources ")
let _path1 = resourceRequest.bundle.path(forResource: "img2", ofType: "jpg")
let img = UIImage(contentsOfFile: _path1!)}因此,随需应变资源的真正位置在这里:
/Users/admin/Library/Developer/CoreSimulator/Devices/250101ED-DFC5-424C-8EE1-FC5AD69C3067/data/Library/OnDemandResources/AssetPacks/com.ae.OfflineMapSwiftV1/1629348341761109610/com.##.OfflineMapSwiftV1.asset-pack-000000G31NNOJ.assetpack/img2.jpg
发布于 2017-11-01 21:44:49
要扩展saswanb的答案,您使用的pathForResource必须匹配添加到ODR标记中的文件夹或文件名。如果将对文件夹的引用添加到ODR,则可以搜索该文件夹名称,但不能搜索该文件夹的内容。
NSString *path= [[NSBundle mainBundle] pathForResource:@"ODRFolder1" ofType:nil ];但是,如果将文件夹的内容添加到ODR标记中,则可以单独搜索每个文件。
https://stackoverflow.com/questions/33824601
复制相似问题