为什么我的popover在iPhone6Plus的iOS8.1中崩溃?iOS 8运行正常(实际上是Xcode 6.0到6.1错误)

为什么我的popover在iPhone6Plus的iOS8.1中崩溃?iOS 8运行正常(实际上是Xcode 6.0到6.1错误),ios,ios8,uipopovercontroller,Ios,Ios8,Uipopovercontroller,我很高兴看到苹果在iOS 8中允许iPhone上使用Popover(在某些情况下,更大的iPhone,仅适用于横向),我将一些代码从显示UIPickerview切换到UIPopoverController,就像我在iPad应用程序中使用的一样。现在我收到了关于iOS 8.1崩溃的报告,在我的测试中,我在下面的第二行看到了崩溃: XfrGraphTypeVC *graphTypePopover = [[XfrGraphTypeVC alloc]

我很高兴看到苹果在iOS 8中允许iPhone上使用Popover(在某些情况下,更大的iPhone,仅适用于横向),我将一些代码从显示UIPickerview切换到UIPopoverController,就像我在iPad应用程序中使用的一样。现在我收到了关于iOS 8.1崩溃的报告,在我的测试中,我在下面的第二行看到了崩溃:

    XfrGraphTypeVC *graphTypePopover = [[XfrGraphTypeVC alloc]
                                    initWithNibName:@"XfrGraphTypeVC"
                                    bundle:[NSBundle mainBundle]
                                    type:xfrChannelMode cellHeight:cellHt];

self.popoverController = [[NSClassFromString(@"UIPopoverController") alloc] initWithContentViewController:graphTypePopover];
我尝试了一些方法来解决这个问题,但没有成功。在iPad上仍然可以正常工作。苹果打碎了什么东西吗

编辑:仍不工作。苹果在8.1中做了一些改变,打破了这一局面。会发生什么事

编辑:现在我认为这是从Xcode 6.1开始的,因为用Xcode 6.0构建的应用不会崩溃

事故日志:

    Incident Identifier: CD6192B8-363D-4EAB-9392-8A366D1FD10C
CrashReporter Key:   797d45c1f30283e0885ce0a30c88ccdf6fd78036
Hardware Model:      iPhone7,1
Process:             AudioTools [4530]
Path:                /private/var/mobile/Containers/Bundle/Application/5EDE9ACF-5372-45B8-B370-3AFFD345ED24/AudioTools.app/AudioTools
Identifier:          com.studiosixdigital.audiotools
Version:             7.3.11 (7.3.11)
Code Type:           ARM (Native)
Parent Process:      launchd [1]

Date/Time:           2014-11-11 17:10:31.927 -0800
Launch Time:         2014-11-11 17:10:26.147 -0800
OS Version:          iOS 8.1 (12B411)
Report Version:      105

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread:  0

Last Exception Backtrace:
0   CoreFoundation                  0x2379fc1f _exceptionPreprocess + 127
1   libobjc.A.dylib                 0x30fafc8b objc_exception_throw + 38
2   CoreFoundation                  0x2379fb65 +[NSException raise:format:] + 112
3   UIKit                           0x26e8a41b -[UIPopoverController _initWithContentViewController:popoverControllerStyle:] + 266
4   AudioTools                      0x004f4065 0x69000 + 4763749
5   UIKit                           0x26c8fc2b -[UIApplication sendAction:to:from:forEvent:] + 70
6   UIKit                           0x26c8fbd1 -[UIControl sendAction:to:forEvent:] + 44
7   UIKit                           0x26c7a863 -[UIControl _sendActionsForEvents:withEvent:] + 582
8   UIKit                           0x26c8f63d -[UIControl touchesEnded:withEvent:] + 588
9   UIKit                           0x26c8f317 -[UIWindow _sendTouchesForEvent:] + 522
10  UIKit                           0x26c88be1 -[UIWindow sendEvent:] + 544
11  UIKit                           0x26c5f3dd -[UIApplication sendEvent:] + 196
12  UIKit                           0x26ed2c29 _UIApplicationHandleEventFromQueueEvent + 13888
13  UIKit                           0x26c5de39 _UIApplicationHandleEventQueue + 1296
14  CoreFoundation                  0x23766377 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14
15  CoreFoundation                  0x23765787 __CFRunLoopDoSources0 + 218
16  CoreFoundation                  0x23763ded __CFRunLoopRun + 772
17  CoreFoundation                  0x236b2211 CFRunLoopRunSpecific + 476
18  CoreFoundation                  0x236b2023 CFRunLoopRunInMode + 106
19  GraphicsServices                0x2aa650a9 GSEventRunModal + 136
20  UIKit                           0x26cbe1d1 UIApplicationMain + 1440
21  AudioTools                      0x0007c647 main + 50
22  AudioTools                      0x0006d028 start + 40

好的,我下载了Xcode 6.0.1,现在所有这些都可以正常工作了。这是苹果在Xcode 6.1中打破的。我以为是在iOS 8.1中,因为这是同时发生的。

UIPOPCovercontroller
仍然只适用于iPad

发件人:

Popover控制器仅用于iPad设备。 尝试在其他设备上创建一个会导致异常


所以它在iPhone设备上不起作用。可能他们在上一版本中破坏了某些东西,这就是为什么它对您有效。

您能分享导致崩溃的异常吗?应该显示在控制台中。刚刚添加。哇,谁否决了这个,苹果?为什么这是
[NSClassFromString(@“UIPopoverController”)alloc]
而不是
[UIPopoverController alloc]
?你能把崩溃日志符号化吗?那只是为了防止在不支持弹出的旧iOS上崩溃。我会试着去象征。