【发布时间】:2017-03-28 21:22:56
【问题描述】:
最近我一直在尝试学习如何在空闲时间创建应用程序。我一直在关注 Apple 的 Swift 文档以及他们关于创建应用程序的教程。完成“将 UI 连接到代码”教程后,我运行了模拟器,但在我的“AppDelegate”类中收到了 SIGABRT 异常。我看了看控制台,它说:
由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:'-[FoodTracker.ViewController nameTextField:]:发送到实例的无法识别的选择器 0x7fb572d0a040'
我什至用 Apple 的文件替换了我的原始文件,只是为了看看是否有任何差异(没有差异,除了一些额外的 cmets)。这是我的 ViewController 类文件:
class ViewController: UIViewController, UITextFieldDelegate {
//MARK: Properties
@IBOutlet weak var nameTextField: UITextField!
@IBOutlet weak var mealNameLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Handle the text field’s user input through delegate callbacks.
nameTextField.delegate = self
}
//MARK: UITextFieldDelegate
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
// Hide the keyboard.
textField.resignFirstResponder()
return true
}
func textFieldDidEndEditing(_ textField: UITextField) {
mealNameLabel.text = textField.text
}
}
【问题讨论】:
-
在 storyBoard 中检查你的
nameTextField连接? -
尾随的分号让我们想知道您是否在 Storyboard 中设置了 IBAction 而不是 IBOutlet。正如乔所说,检查您的故事板,看看您的连接是否有感叹号。
-
我没有看到任何感叹号。
-
将您的项目上传到某个地方,以便我下载并试用。
-
drive.google.com/open?id=0B0lXmLqP87aON0wwckJucWhSbms 已将其上传到 Google 云端硬盘。谢谢:)