有谁能帮我解决这个崩溃?它在加载时在某些UIWebView实例之间来回切换时会间歇性地发生.
崩溃通常略有不同,但它始终是具有类似堆栈跟踪的"WebThread"崩溃.
这是两个崩溃的相关部分:
Date/Time: 2011-11-08 14:29:01.165 -0500 OS Version: iPhone OS 5.0 (9A334) Report Version: 104 Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x00000006 Crashed Thread: 4 Thread 4 name: WebThread Thread 4 Crashed: 0 ??? 0x00000006 0 + 6 1 WebCore 0x32a36154 -[QuickLookHandleAsDelegate connection:didReceiveData:lengthReceived:] + 72 2 QuickLook 0x30bee2c2 -[QLThreadInvoker connectionDidReceiveDataLengthReceived:] + 90 3 CoreFoundation 0x3537a226 -[NSObject performSelector:withObject:] + 38 4 Foundation 0x32ce2752 __NSThreadPerformPerform + 346 5 CoreFoundation 0x353efafe __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 10 6 CoreFoundation 0x353ef2ca __CFRunLoopDoSources0 + 210 …
UIPopoverController *popCtrl = [[UIPopoverController alloc] initWithContentViewController:self.rootViewController.navigationController];
popCtrl.delegate = self;
[popCtrl presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
Run Code Online (Sandbox Code Playgroud)
此代码位于按钮操作中,其中按钮是"发件人".
带有presentPopoverFromBarButtonItem的行会导致抛出异常,原因如下:Application tried to present modally an active controller DetailViewController: 0x15a54c00.在这种情况下,DetailViewController是"self",它只是popCtrl的委托,所以我看不出它是如何尝试以模态方式呈现的.它应该呈现rootViewController.navigationController.
正如您可能已经从名称中猜到的那样,rootViewController和detailViewController在SplitViewController中,但在尝试使用popover呈现rootViewController之前,它将从SplitViewController中删除.
这仅在使用iOS 8 SDK构建时在iOS 8上发生.它也不是100%可重复的.大多数情况下会发生此异常,但有时在我重新启动应用程序之后,在我重新运行应用程序之前它根本不会发生,然后它会一直开始发生.(我把它放在一个try/catch中,所以我知道每次运行可以发生多次.)
我几乎肯定这是SDK中的另一个iOS 8错误,但有没有人想出一个解决方法?