Ios Xcode提高了;EXC“坏”访问代码=1;当目标为7.0时

Ios Xcode提高了;EXC“坏”访问代码=1;当目标为7.0时,ios,objective-c,iphone,xcode,swift,Ios,Objective C,Iphone,Xcode,Swift,我在SDK 6.4和Target 7.1中使用Xcode 6.3 beta4 在iOS 7.1模拟器或设备上运行以下简单行会引发错误: let alert = UIAlertController(title: "title", message: "message", preferredStyle: .Alert) 错误是: EXC_BAD_ACCESS code=1 在iOS 8.4模拟器中运行时,不会发生此错误 似乎存在由不同SDK版本引起的冲突 如何防止在iOS 7.x版的目标上运行EX

我在SDK 6.4和Target 7.1中使用Xcode 6.3 beta4

在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\u BAD\u ACCESS code=1
错误?

编辑:Xcode向我显示:

如何调试此类错误?

UIAlertController
仅在iOS 8.0及以上版本上有效。因此,要在iOS 7中使用
UIAlertView
,您必须有一个分段


仅在iOS 8.0及以上版本上有效。因此,您必须有一个分段才能在iOS 7中使用
UIAlertView
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
    }

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
    }

或者只在任何地方使用UIAlertView,而不必使用UIAlertController。这样,您还可以确保您的代码得到了正确的测试;在两个版本的代码中的一个版本中很容易出现bug,或者只在任何地方使用UIAlertView,而不必使用UIAlertController。这样,您还可以确保您的代码得到了正确的测试;很容易在两个版本的代码中的一个版本中出现错误。