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. 在调用conditionallyBeginAccessingResourcesWithCompletionHandler后请求 appDidFinishLauching 上的 Bell1标签
  3. 登录完成后在 Home 控制器的viewDidLoad上请求 Bell2 。

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

如果我删除第 3 步或在单个请求中请求两个资源,则应用程序可以正常工作。如果我同时创建两个 NSBundleResourceRequest 则应用程序崩溃。

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

4

1 回答 1

5

我发现了问题。我多次调用beginAccessingResourcesWithCompletionHandler同一个NSBundleResourceRequest对象。

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

于 2017-07-24T01:44:11.507 回答