swift - UITextField 上的 "uppercaseString"和 "lowercaseString"在 Swift 中崩溃

标签 swift

我有一个小应用程序,它有 1 个 ViewController,其中:2 个 Outlets(一个 UITextField 和一个 UILabel)和 1 个触发的 Action当按下按钮时。代码如下所示:

class ViewController: UIViewController {

@IBOutlet weak var textField: UITextField!
@IBOutlet weak var label: UILabel!

@IBAction func changeText() {
    label.text = textField.text.lowercaseString
    }
}

我的问题是,为什么每次我运行应用程序并按下按钮时,应用程序都会崩溃并显示 EXC_BAD_ACCESS

编辑 1:似乎 Xcode 是问题所在。我只在 Xcode 6.3 beta 上崩溃,在 6.1.1 上它工作正常。这是项目 LINK

编辑 2:问题已解决,问题是 Xcode 版本,谢谢大家的回答!

最佳答案

这是 beta 1 的一个已知问题,现已修复。您正在使用按钮来更新标签字段,但不需要为此使用按钮。您可以选择将 IBAction 连接到文本字段的发送事件 Editing Changed 以使其在您键入预览时实时更改。

Swift Compiler • @objc enums no longer cause the compiler to crash when used from another file. (19775284) • Fixed a use after free crash in lowercaseString and uppercaseString. (19801253)

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var label: UILabel!

    @IBOutlet weak var textField: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func changeText(sender: AnyObject) {
        label.text = textField.text.lowercaseString
    }

}

enter image description here

enter image description here

sample

关于swift - UITextField 上的 "uppercaseString"和 "lowercaseString"在 Swift 中崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28737517/

相关文章:

ios - 如何重用另一个 TableView Controller 中的单元格

ios - Firebase“firebase此页面正在尝试从未经身份验证的来源加载脚本

ios - 当应用唤醒更新时 LocationManager 崩溃

swift - 准备转场

ios - 条件绑定(bind)的初始化程序必须具有可选类型,而不是 '[NSObject: AnyObject]' SwiftyJSON

ios - 无法使用一个到另一个应用程序组访问 NSUserDefaults

json - CollectionView.reloadData() 以错误的顺序输出单元格

ios - 重用 UITableViewCell 与不同的数据

ios - UIView 不允许向下滑动以查看屏幕的其余部分

ios - 无法形成范围与 upperBound < lowerBound