首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Swift中的UIAlertView,获取EXC_BAD_ACCESS

Swift中的UIAlertView,获取EXC_BAD_ACCESS
EN

Stack Overflow用户
提问于 2014-06-04 13:34:51
回答 2查看 10.1K关注 0票数 19

首先,我非常清楚Xcode6和Swift语言是Beta版本,很容易出错;然而,这个特殊的版本似乎有些奇怪,因为到目前为止我尝试过的所有其他版本似乎都工作得很好。

如果这不适合StackOverflow,我将很乐意删除这个问题。

我已经开始使用Xcode6/Swift(为它的发布做准备),与我想象的相比,这是一次非常愉快的经历。话虽如此,在移植我喜欢做的“培训”风格的应用程序时,一个问题是,由于EXC_BAD_ACCESS,我似乎无法生成UIAlertView。相关代码是:

代码语言:javascript
复制
override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)

    var alert = UIAlertView(title: "Title", message: "Message", delegate: nil, cancelButtonTitle: "OK") // EXC_BAD_ACCESS here
    alert.show()
}

在创建UIAlertView的那一行上,我得到了一个EXC_BAD_ACCESS,因为在一个已释放的实例上调用了[UIAlertView retain]

再一次,我将这归因于测试版的横幅,但我很好奇我是不是做错了什么,或者是否有人遇到了类似的问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-04 13:50:39

尝试以下代码

代码语言:javascript
复制
let alert = UIAlertView()
alert.title = "Title"
alert.message = "My message"
alert.addButtonWithTitle("Ok")
alert.show()

但在iOS 8中

UIAlertView已弃用。所以使用preferredStyleUIAlertControllerStyleAlertUIAlertController。它应该是:

代码语言:javascript
复制
var alert = UIAlertController(title: "Title", message: "Message", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)

检查上面的代码,你是否得到了相同的错误?

票数 29
EN

Stack Overflow用户

发布于 2014-06-04 14:15:50

你必须使用委托的两件事:self cancelButtonTitle以nil结尾

票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24029768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档