在我的应用程序的最开始,我尝试加载每个 UIDocument 以稍微预览它们的内容。这在大多数情况下都非常有效,但有时我在加载 UIDocument 后会立即崩溃。我的问题是我不知道如何解释崩溃。我什至不确定它是否与 UIDocument 的处理有关(线程 6 和 7 与 UIDoc 有关,但线程 8 似乎导致了崩溃)。
如果有人可以帮助我解释这一点,我将非常感激:
我在所有异常上都有断点,但调试器不会停在特定的代码行。
在我的应用程序的最开始,我尝试加载每个 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
呼叫修复了一切!