我使用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告诉我:
如何调试此类错误?
答案 0 :(得分:4)
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。