swift中的警报错误[重复]

Posted

技术标签:

【中文标题】swift中的警报错误[重复]【英文标题】:Alert error in swift [duplicate] 【发布时间】:2014-06-08 17:20:56 【问题描述】:

我用 swift 和 Xcode 6 编写这段代码

@IBAction func Alert(sender : UIButton) 
  var alert : UIAlertView = UIAlertView(title: "Hey", message: "This is  one Alert",       delegate: nil, cancelButtonTitle: "Working!!")

    alert.show()

Xcode 在编译时不显示错误。

但在模拟器中APP失败并返回错误:

(lldb)
thread 1 EXC_BAD_ACCESS(code 1 address=0x20)

【问题讨论】:

在我看来是个错误。 我在***.com/questions/24084521/…找到答案 【参考方案1】:

UIAlertView 便捷初始化器的 Swift shim 中有一个错误,您需要使用普通初始化器

let alert = UIAlertView()
alert.title = "Hey"
alert.message = "This is  one Alert"
alert.addButtonWithTitle("Working!!")
alert.show()

这种风格的代码感觉更符合 Swift 语言。便利初始化器对我来说似乎更客观-C'ish。只是我的看法。

注意:UIAlertView 已弃用(参见声明),但 Swift 支持 ios7,您不能在 iOS 7 上使用 UIAlertController

Xcode 中的 UIAlertView 声明视图

// UIAlertView is deprecated. Use UIAlertController with a preferredStyle of   UIAlertControllerStyleAlert instead
class UIAlertView : UIView 

仅适用于 Swift iOS 8 的警报

var alert = UIAlertController(title: "Hey", message: "This is  one Alert", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Working!!", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)

Swift 4.2 更新

let alert = UIAlertController(title: "Hey", message: "This is  one Alert", preferredStyle: UIAlertController.Style.alert)
alert.addAction(UIAlertAction(title: "Working!!", style: UIAlertAction.Style.default, handler: nil))
self.present(alert, animated: true, completion: nil)

【讨论】:

以上是关于swift中的警报错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中显示警报视图会导致 EXC BAD ACCESS [重复]

Swift中的UIWebView问题[重复]

Swift UITesting 错误:文字中的转义序列无效。 \U201c

Swift 2中的“调用中的额外参数'错误'”错误[重复]

显示相机和画廊权限的自定义警报 swift 3

在所有视图控制器中创建警报功能 - swift