(ODR) OnDemandResource 'beginAccessingResources 被多次调用或在错误的时间被调用 (3)

(ODR) OnDemandResource 'beginAccessingResources was called more than once or at the wrong time (3)

我正在尝试在我的应用程序中引入 ODR 并面临以下崩溃。

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'beginAccessingResources was called more than once or at the wrong time (3)'

这是我目前所做的。

  1. 创建了两个带有标签 Bell1Bell2.
  2. 的资产包
  3. 在调用 conditionallyBeginAccessingResourcesWithCompletionHandler.
  4. 后请求 appDidFinishLauching 上的 Bell1 标记
  5. 登录完成后在Home控制器的viewDidLoad请求Bell2

(仅供参考:我暂时不会在任何地方调用 endAccessingResources。)

如果我删除第 3 步或在单个请求中请求这两个资源,则该应用程序可以正常运行。如果我同时创建两个 NSBundleResourceRequest,那么应用程序就会崩溃。

到目前为止,我已经搜索了 Whosebug 并阅读了文档,但找不到有关此问题的任何帮助。

我找到问题了。我在同一个 NSBundleResourceRequest 对象上多次调用 beginAccessingResourcesWithCompletionHandler

所以我通过为每个后续请求创建一个新的 NSBundleResourceRequest 实例来解决它。