在我的应用程序开始时,我尝试加载每个UIDocument以获得其内容的一些预览。在大多数情况下,这种方法效果很好,但是有时在加载UIDocument之后我会崩溃。我的问题是我不知道如何解释崩溃。我什至不知道它是否与UIDocument的处理有关(线程6和7与UIDoc有关,但线程8似乎导致了崩溃)。

如果有人可以帮助我解释这一点,我将不胜感激:

我在所有异常上都有断点,但是调试器不会在特定的代码行停下来。

最佳答案

我有同样的问题。只需读取我们的iCloud文档,即可在我们的其中一种测试设备上轻松复制。重新安装该应用程序不会影响该错误。

我正在使用NSMetadataQuery来获取文件URL。我的NSMetadataQueryDidFinishGatheringNotification接收者看起来像这样:

- (void)queryDidFinishGathering:(NSNotification *)notification
{
    NSMetadataQuery *query = [notification object];
    [query disableUpdates];
    [query stopQuery]; //  <--- This was the problem

    NSMetadataItem *item = [query resultAtIndex:0];
    NSURL *url = [item valueForAttribute:NSMetadataItemURLKey];
    UIDocument *doc = [[CustomDocument alloc] initWithFileURL:url];
    [doc openWithCompletionHandler:^(BOOL success) {
         // EXC_BAD_ACCESS before completion block is called :'(
    }];

    [query enableUpdates];
}

删除stopQuery调用可以解决所有问题!

关于ios - 与UIDocument相关的EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11823625/

10-12 03:37