NSBundleResourceRequest beginAccessingResources 永远不会完成

Posted

技术标签:

【中文标题】NSBundleResourceRequest beginAccessingResources 永远不会完成【英文标题】:NSBundleResourceRequest beginAccessingResources never completes 【发布时间】:2017-10-22 19:39:40 【问题描述】:

我正在尝试在我的应用程序中使用 ODR,但 beginAccessingResources 从未完成。以下是我的代码的简化版本:

let bundleResourceRequest = NSBundleResourceRequest(tags: tags)

bundleResourceRequest.beginAccessingResources  error in

    DispatchQueue.main.async 
        if let error = error 
            bundleResourceRequest.endAccessingResources()

            // Handle error

         else 
            // Successful
        
    

我已经开始使用标记Level1 标记.sks 文件和使用标记Home 标记另一个.sks。当我开始访问标签Home 的资源时,我可以顺利完成,没有任何问题。但是,当我尝试使用 Level1 标记时,完成块永远不会触发。我没有收到错误或成功。当我查看磁盘报告时,它显示HomeIn UseLevel1Downloading,并且进度条永远不会移动。 Level1 总共有 16 KB,所以不算太大,我让它静置了大约 10 分钟,但没有成功。

什么可能导致此功能永远无法完成?

【问题讨论】:

我现在也有同样的问题。你做了什么来解决这个问题?对于Debug,您将Embed Asset Packs in Product Bundle 更改为是。它在生产中是否正常工作? 我的问题是here。 【参考方案1】:

我可以通过转到构建设置并将Embed Asset Packs in Product Bundle 更改为Yes 进行调试来解决此问题。

【讨论】:

以上是关于NSBundleResourceRequest beginAccessingResources 永远不会完成的主要内容,如果未能解决你的问题,请参考以下文章

iOS 9 的点播资源可以永久保留吗?

iOS 按需资源 - 仅按需下载。调试

为啥我的按需资源仍处于正在下载...状态?

是否需要请求 iOS 按需资源的预取标签?

python的 a,b=b,a+b 和 a=b b=a+b 的区别

为啥是“a^=b^=a^=b;”不同于“a^=b;b^=a;a^=b;”?