我有一个小应用程序,它有 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
}
}
关于swift - UITextField 上的 "uppercaseString"和 "lowercaseString"在 Swift 中崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28737517/