Swift 线程 1:当我尝试更改 uilabel.text 时出现 EXC_BAD_INSTRUCTION

Posted

技术标签:

【中文标题】Swift 线程 1:当我尝试更改 uilabel.text 时出现 EXC_BAD_INSTRUCTION【英文标题】:Swift Thread 1: EXC_BAD_INSTRUCTION when I try to change a uilabel.text 【发布时间】:2015-07-08 20:07:09 【问题描述】:

我知道有很多这样的 Stack Overflow 问题,但我找不到适合我的答案。我正在使用一个名为chillerCell 的自定义UITableViewCell 类。这是它的代码:

import UIKit

class chillerCell: UITableViewCell 

    @IBOutlet weak var iconLabel: UILabel!
    @IBOutlet weak var boldLabel: UILabel!
    @IBOutlet weak var italicLabel: UILabel!

    func configureCellWithEvent(event: Event)
        boldLabel.text = "\(event.eventName)"
        italicLabel.text = "\(event.eventDescription)"
    

我在 boldLabel.text = "\(event.eventName)" 行收到 Thread 1 运行时错误

我创建了自己的 Event 类,是的,event.eventNameevent.eventDescription 属于 String 类型,而不是 Nil

编辑:我忘了说,我的 boldLabel 和 italicLabel 不是纯文本,而是属性文本。

【问题讨论】:

你能给我们更多关于运行时错误的细节吗?您是否检查过您的 IBOutlet 是否正确链接? 是的,我的故事板连接正确。我什至断开了插座并重新连接。 很奇怪。您能否在调试器中检查粗体标签以确保它不为零。如果不尝试更改其他属性 - 例如BoldLabel.hidden = true。还可以尝试交换粗体标签和斜体标签,看看它是否特定于粗体标签。 boldLabel 为零。但是,它肯定与情节提要有关 好的,但这听起来是个问题。查看this SO Question 或this one 了解为什么链接的 Outlet 可能仍然为零。 【参考方案1】:

试试这个,如果事件对象的事件名称和事件描述为字符串,它会起作用:

func configureCellWithEvent(event: Event)
    var attributedString = NSMutableAttributedString(string:"(event.eventName)") and boldLabel.text = attributedString
    boldLabel.text = attributedString
    italicLabel.text = attributedString

【讨论】:

您能在此处复制粘贴您的事件对象值吗? 再检查一下 IBOutlet 连接,看看这是否适合你。 func configureCellWithEvent(event: Event) boldLabel.text = "测试粗体标签" italicLabel.text = "测试斜体标签" 我刚试了测试值,还是报错 那么这就是错误,您的 IBOutlet 连接已断开。在你的故事板中修复它。转到情节提要并单击标签以使用 ctrl+从 UILabel 拖动到类来检查或创建新的 IBOutlet。 我的 IBOutlets 很好,我重置了它们,但仍然出现错误【参考方案2】:

删除标签并再次创建其他标签,这对我有用。

【讨论】:

以上是关于Swift 线程 1:当我尝试更改 uilabel.text 时出现 EXC_BAD_INSTRUCTION的主要内容,如果未能解决你的问题,请参考以下文章

iOS Swift 如何更改或更新自定义 UITableViewCell 中的 UILabel 属性

当他们在 Swift 中创建自己时如何更改 UILabel 的标题?

在 Swift 中使用 UISlider 以编程方式更改 UILabel

当我在 Swift 2.0 中设置 UILabel 标题时的 EXC_BAD_INSTRUCTION

如何借助 iOS Swift 中的滑块更改标签的值?

如何在 Swift 中更改 UILabel 的文本属性?