iOS 8.3支持的方向崩溃

时间:2015-04-14 13:47:17

标签: objective-c uiinterfaceorientation

我的应用和iOS 8.3存在很大问题。 我遇到了很多崩溃,总是出现同样的错误:

  

由于未捕获的异常而终止应用   ' UIApplicationInvalidInterfaceOrientation',原因:'支持   方向与应用没有共同的方向,[...   shouldAutorotate]返回YES

当" ..."有很多课程。 一个特殊的问题是类UIAlertView,我有UIAlertView crashs in iOS 8.3的同样问题 但是我无法解析子类化UIAlertView(Apple表示UIAlertView类旨在按原样使用并且不支持子类化)或使用UIAlertController。 你能帮助我吗?

4 个答案:

答案 0 :(得分:6)

许多其他应用程序没有崩溃这个错误,所以我想知道我们的应用程序中是否有其他东西可以解决此崩溃问题。我确保iOS 8会获得UIAlertController,因此它不会崩溃,但这对第三方框架没有帮助。

我们团队的另一位工程师最终通过这样做来修复它:

stream

答案 1 :(得分:2)

我不知道从iOS 8.2到8.3有什么变化,以及为什么他们改变了它,因为它工作正常。它很烦人。

无论如何,我用链接上的要点解决了这个问题。

https://gist.github.com/mkeremkeskin/0ed9fc4a2c0e4942e451

答案 2 :(得分:1)

在这里尝试解决方案之后,它们都没有为我工作。我在一个应用程序中支持iOS 6-8,而且,更重要的是,使用一些在内部使用UIAlertView的库,因此只有有条件地编译才能在可用时使用UIAlertController。

我提出了一个解决问题的解决方案。你的旅费可能会改变。我将头文件包含在Header Prefix文件中,以便它确保包含在显示UIAlertView的任何位置。

我在这里发布这个问题,对于那些在这个问题上遇到困难的人来说,网上找到的解决方案都不起作用。希望它有用。

https://gist.github.com/joshhudnall/cdc89b61d0a545c85d1d

答案 3 :(得分:0)

我用这个解决了这个问题:

if objc_getClass("UIAlertController") != nil {

     println("UIAlertController can be instantiated")

     //make and use a UIAlertController iOS8

}
else {

     println("UIAlertController can NOT be instantiated")

     //make and use a UIAlertView iOS7
}

然后,您可以让您的应用在iOS 7和iOS 8中运行