Xcode引发" EXC_BAD_ACCESS代码= 1"当Target为7.0时

时间:2015-04-22 10:31:06

标签: ios objective-c iphone xcode swift

我使用Xcode 6.3 beta4与SDK 6.4和Target 7.1。

在iOS 7.1模拟器或设备上运行如下所示的简单行会引发错误:

let alert = UIAlertController(title: "title", message: "message", preferredStyle: .Alert)

错误是:

EXC_BAD_ACCESS code=1

当我在iOS 8.4模拟器中运行时,不会发生错误。

似乎存在由不同SDK版本引起的冲突。

如何防止在iOS 7.x版目标上运行EXC_BAD_ACCESS code=1错误?

编辑:Xcode告诉我:

enter image description here

如何调试此类错误?

2 个答案:

答案 0 :(得分:4)

iOS7 中的

UIAlertView已被 iOS8 中的UIAlertController取代。

我建议您按照以下步骤解决兼容性问题

if objc_getClass("UIAlertController") != nil {

         println("UIAlertController can be instantiated")

          //make and use a UIAlertController

     }
     else {

          println("UIAlertController can NOT be instantiated")

          //make and use a UIAlertView
    }

答案 1 :(得分:2)

UIAlertController

仅在iOS 8.0及更高版本上有效。因此,您必须有分段才能将UIAlertView用于iOS 7。