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

Posted

技术标签:

【中文标题】在 Swift 中显示警报视图会导致 EXC BAD ACCESS [重复]【英文标题】:Showing an alert view in Swift causes EXC BAD ACCESS [duplicate] 【发布时间】:2014-06-04 08:39:25 【问题描述】:

我有以下视图控制器。它只是从文本字段中读取一个值以显示在 UIAlertView 中。

import UIKit

class ViewController: UIViewController 

    @IBOutlet var textField: UITextField!

    @IBAction func pressButton(sender: UIButton) 
        let name = textField.text

        let alert = UIAlertView(
            title: "Hello!",
            message: "How are you today, \(name). I'm lovely!",
            delegate: nil,
            cancelButtonTitle: "Thanks!"
        )

        alert.show() // EXC_BAD_ACCESS
    

为什么alert.show()EXC_BAD_ACCESS 发生崩溃?我的UIAlertView 实例在这里发生了什么?为什么不像我想的那样在alert 中?

【问题讨论】:

我认为这是我没有遇到的语法问题。道歉! ios8 中UIAlertViews 不是被UIAlertController 替换了吗? 【参考方案1】:

尝试使用 var 而不是 lat 如下

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)

【讨论】:

如何调用alert的委托方法。 @iOS Developer 这会导致背景视图变黑并生成警告,presenting view on deteched view controllers is discouraged

以上是关于在 Swift 中显示警报视图会导致 EXC BAD ACCESS [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在主视图控制器中显示警报视图(从子类调用)

Swift 3 - 异步显示警报控制器,长功能在后台运行

在 Swift 的警报中使用自定义视图

swift 2.2中api(json)没有数据时如何显示警报

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

如何在警报视图中的文本之间添加图像?