在我的日志服务中遇到了很多这种崩溃。任何提示?我的应用程序仅支持纵向模式。
线程:崩溃:com.apple.main-thread
0 libobjc.A.dylib 0x32bfbf46 objc_msgSend + 5
1 UIKit 0x289ba531 -[UIWindow _updateInterfaceOrientationFromDeviceOrientation:] + 152
2 CoreFoundation 0x254d44a1 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
3 CoreFoundation 0x2543093d _CFXNotificationPost + 1784
4 Foundation 0x261609b9 -[NSNotificationCenter postNotificationName:object:userInfo:] + 72
5 UIKit 0x289ba2f3 -[UIDevice setOrientation:animated:] + 318
6 UIKit 0x289ba0a3 -[UIApplication handleEvent:withNewEvent:] + 1566
7 UIKit 0x289b99c1 -[UIApplication sendEvent:] + 72
8 UIKit 0x28a1e801 _UIApplicationHandleEvent + 632
9 GraphicsServices 0x2c79d679 _PurpleEventCallback + 528
10 GraphicsServices 0x2c79d2c3 PurpleEventCallback + 34
11 CoreFoundation 0x254e1dab __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 34
12 CoreFoundation 0x254e1d47 __CFRunLoopDoSource1 + 346
13 CoreFoundation 0x254e0349 __CFRunLoopRun + 1608
14 CoreFoundation 0x2542e621 CFRunLoopRunSpecific + 476
15 CoreFoundation 0x2542e433 CFRunLoopRunInMode + 106
16 GraphicsServices 0x2c79c0a9 GSEventRunModal + 136
17 UIKit 0x28a18809 UIApplicationMain + 1440
18 simplyUs 0x00052013 main (main.m:14)
答案 0 :(得分:0)
我遇到了同样的问题。
可能我的情况与你的相似。一些解除分配的控制器仍然收到方向通知。当我在动作表委托方法中呈现控制器时,我崩溃了:
actionSheet:clickedButtonAtIndex:
但是当控制器出现在
之内时actionSheet:didDismissWithButtonIndex:
现在一切正常。我认为当窗口在顶部时,我们应该在窗口中显示控制器。因此,在iOS8中显示控制器之前,应该关闭所有警报视图/操作表窗口。否则它仍然会收到方向通知。
答案 1 :(得分:0)
除了崩溃跟踪之外,如果您有更多与崩溃相关的信息,这将有所帮助。我怀疑问题出在消息传递解除分配的对象上;一个告诉我的例子是从NSNotification崩溃。您可以尝试启用僵尸(编辑模式中的诊断选项卡),这可以确定是否是这种情况。
要仔细检查方向支持,我建议在https://developer.apple.com/Library/ios/featuredarticles/ViewControllerPGforiPhoneOS/RespondingtoDeviceOrientationChanges/RespondingtoDeviceOrientationChanges.html中说明的方法中设置断点 如果你已经实现了它们。
最后一点需要注意的是,在iOS 8中,他们修复了以前iOS版本中的一些关键方法,错误地忽略了当前的方向,例如状态栏的高度/宽度
[UIApplication sharedApplication].statusBarFrame.size.height
这意味着许多代码(包括来自第三方库的代码)都有代码来解决原始问题,现在需要在iOS 8中禁用代码。例如,代码将从逻辑中挂钩,例如查看状态栏高度很大,并得出结论,该系统处于风景中。