遵循 Xcode 的 Apple 'Food Tracker' 教程 - 无法获取更改标签文本的按钮

Posted

技术标签:

【中文标题】遵循 Xcode 的 Apple \'Food Tracker\' 教程 - 无法获取更改标签文本的按钮【英文标题】:Following Apple 'Food Tracker' tutorial for Xcode - can't get button to change label text遵循 Xcode 的 Apple 'Food Tracker' 教程 - 无法获取更改标签文本的按钮 【发布时间】:2019-06-09 12:14:23 【问题描述】:

我正在关注official ios Apps tutorial 在 Xcode 中制作一个基本的单视图应用程序。

到目前为止,我们所做的实际上是:

在 UI 中添加了一个标签并将初始文本设置为“膳食名称:” 在 UI 中添加了一个文本框 在 UI 中添加了一个按钮

然后我们向视图控制器添加了一些非常简单的代码,将标签声明为一个出口和一个按钮操作,当被调用时,应该将标签的文本更改为Default Text

我的 ViewController 代码现在与教程代码相同:

class ViewController: UIViewController 
    //MARK: Properties

    @IBOutlet weak var nameTextField: UITextField!
    @IBOutlet weak var mealNameLabel: UILabel!

    override func viewDidLoad() 
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    

    //MARK: Actions

    @IBAction func setDefaultLabelText(_ sender: UIButton) 
        mealNameLabel.text = "Default Text"
    

问题是,当我在模拟器中按下按钮时,我收到一条错误消息,提示隐式展开的可选值为 nil。 (应用启动正常,只是在按下按钮时)

据我了解,这意味着有些东西是空白的,但我唯一的选择是:

文本框不是空白的,因为在我按下按钮之前,我在里面写了“饼干”之类的东西 标签文本,不为空,因为默认设置为“膳食名称:”

我真的不知道是什么触发了这个错误?

【问题讨论】:

【参考方案1】:

据我了解,这意味着某些东西是空白的,不能是

不,这意味着你需要确保插座

mealNameLabel.text = "Default Text" // here mealNameLabel is nil 

连接到IB中的标签

【讨论】:

谢谢,我认为它们是连接的,因为我首先将 UI 元素拖到文本编辑器中以创建出口/操作。但结果是,他们仍然没有连接!

以上是关于遵循 Xcode 的 Apple 'Food Tracker' 教程 - 无法获取更改标签文本的按钮的主要内容,如果未能解决你的问题,请参考以下文章

Xcode11 应用程序加载器

mongodb增删改查 及批量操作

Xamarin 工作室和 Xcode 5

使用 Xcode 7.2 录制时 XCUITest 崩溃

如何在 Xcode 中链接 fftw3? (苹果电脑)

重写equals方法发现的一点问题